Кіріспе
Factor – Слава Пестов жасаған стекке бағытталған бағдарламалау тілі. Factor динамикалық түрде теріледі және автоматты жад басқарумен қатар, қуатты метапрограммалау мүмкіндіктеріне ие. Тілдің өзін-өзі хосттайтын оңтайландыру компиляторы және интерактивті даму ортасы бар жалғыз бір іске асырылуы бар. Factor таратылымы кең стандартты кітапхананы қамтиды.
Factor is a stack oriented programming language created by Slava Pestov. Factor is dynamically typed and has automatic memory management, as well as powerful metaprogramming features. The language has a single implementation featuring a self hosted optimizing compiler and an interactive development environment. The Factor distribution includes a large standard library.
Тарих
Слав Пестов 2003 жылы Factor бағдарламасын видео ойын үшін скрипт тілі ретінде жасады. Бастапқы іске асыру, қазір JFactor деп аталады, Java-да іске асырылды және Java Virtual Machine-де жұмыс істеді. Ертедегі тіл синтаксис жағынан қазіргі Factor-ге ұқсас болғанымен, қазіргі тіл практикалық тұрғыдан өте өзгеше және қазіргі жүзеге асыруы әлдеқайда жылдам. Уақыт өте келе тілдің өзгеруі көп болды. Бастапқыда Factor бағдарламалары Java-ның рефлексия мүмкіндіктерін пайдаланып Java объектілерін өңдеуге бағытталған. Бастапқыда-ақ, жобалау философиясы тілге жазылған бағдарламаларға бейімделу үшін тілді өзгерту болды. Factor іске асырылуы мен стандартты кітапханалар толығырақ бола бастаған сайын, белгілі бір тілдік мүмкіндіктерге қажеттілік анық болды және олар қосылды. JFactor-да бағдарламалаушы өз кластарын анықтай алатын объект жүйесі болмады, ал Factor-дың алғашқы нұсқалары да солай болды; тіл осы жағынан Scheme-ге ұқсас еді. Бүгінде объект жүйесі Factor-тің маңызды бөлігі болып табылады. Түптік кластар, комбинатордың енгізілуі, макростар, пайдаланушы анықтаған сөздерді талдау және қазіргі заманғы сөздік жүйесі сияқты басқа маңызды тілдік ерекшеліктер олардың пайдалылығы анықталғанда ғана бөліп-бөліп қосылды. Сыртқы функция интерфейсі Factor-тің өте ерте нұсқаларынан бастап болды, ал JFactor-та да ұқсас жүйе болды. Бұл, Factor-мен байланыс жасайтын әрбір сыртқы кітапхана үшін іске асырудың C бөлігіне плагин жасаудың орнына таңдалды және оның артықшылығы – көбірек декларативтілік, компиляция жылдамдығы және жазудың қарапайымдығы. Java-ны іске асыру бастапқыда тек интерпретатордан тұрды, бірақ кейін Java байт-кодына компилятор қосылды. Бұл компилятор тек белгілі бір процедуралармен жұмыс істеді. Factor-тың Java нұсқасы C және Factor-та жазылған нұсқамен ауыстырылды. Бастапқыда ол тек интерпретатордан тұрды, бірақ интерпретатор екі компилятормен ауыстырылды, олар әртүрлі жағдайларда қолданылды. Уақыт өте келе Factor іске асырылуы айтарлықтай жылдамдады.