Кіріспе

Haxe - бір код базасынан көптеген түрлі есептеу платформалары үшін қосымшалар мен бастапқы кодты шығаратын жоғары деңгейдегі платформааралық бағдарламалау тілі мен компиляторы. Бұл MIT лицензиясы бойынша шығарылған еркін және ашық бастапқы кодты бағдарламалық қамтамасыз ету. OCaml тілінде жазылған компилятор GNU General Public License (GPL) нұсқасы 2 бойынша шығарылған. Haxe функциялар жиынтығы мен сандық деректер түрлері, тізбектер, матрицалар, карталар, бинарлық, рефлексия, математика, гипертексттік беру протоколы (HTTP), файл жүйесі және жалпы файл пішімдері сияқты барлық платформаларда қолданатын стандартты кітапхананы қамтиды. Haxe сонымен қатар әр компилятордың мақсаты үшін платформаға тән API-ны қамтиды. Ха, АшықFL және Хапс. io - бір код базасынан бірнеше платформалы контент жасауға мүмкіндік беретін танымал Haxe фреймворктері. Haxe клиенттік және серверлік бағдарламалауды бір тілде қолдау және олардың арасындағы байланыс логикасын жеңілдету идеясымен пайда болды. Haxe тілінде жазылған код JavaScript, C++, Java, JVM, PHP, C#, Python, Lua және Node-ке құрастырылуы мүмкін. js. Haxe SWF, HashLink және NekoVM байт-кодтарын тікелей құрастыра алады және интерпретацияланған режимде жұмыс істейді. Haxe қолдауымен externs (тариф файлдары) құрамында болуы мүмкін типтік ақпарат бар кітапханалар сипаттау мақсатты нақты өзара іс-қимыл қауіпсіз түрде, C ++ header файлдары сияқты сипаттауға болады құрылымы бар объект файлдары. Бұл файлдарда анықталған мәндерді статикалық түрде келтірілген Haxe нысандары ретінде пайдалануға мүмкіндік береді. Сыртқы құрылғылардан басқа, әр платформаның жергілікті мүмкіндіктеріне қол жеткізу үшін басқа да шешімдер бар. Көптеген танымал IDE-лер мен бастапқы код редакторлары Haxe-ді әзірлеуге қолдау көрсетеді. Haxe Foundation ресми түрде ешқандай нақты даму ортасы немесе құралдар жиынтығын ұсынбайды, бірақ VS Code, IntelliJ IDEA және HaxeDevelop Haxe дамуына ең көп қолдау көрсетеді. Синтаксисті ерекшелендірудің негізгі функциялары, кодты аяқтау, қайта құру, жөндеу және т.б. әр түрлі деңгейде болады.

Тарих

Haxe-ді әзірлеу 2005 жылдың қазанында басталды. Алғашқы альфа-версиясы 2005 жылдың 14 қарашасында шығарылды. Haxe 1.0 2006 жылдың сәуірінде Adobe Flash, JavaScript және NekoVM бағдарламаларын қолдаумен шығарылды. PHP-ге қолдау 2008 жылы, ал C++ 2009 жылы қосылды. 2012 жылы компиляторды күрделі жөндеуден өткізу арқылы C# және Java сияқты қосымша платформалар қосылды. Haxe-ді Николас Каннасс және басқа да үлескерлер әзірледі, ал бастапқыда haXe деп аталды, өйткені ол қысқа, қарапайым және "ішінде X бар", автор кез-келген жаңа технологияны сәтті ету үшін қажет деп ойлайды. Haxe - ашық көзге ActionScript 2 компиляторының MTASC мұрагері, оны да Николас Каннасс құрды және GNU General Public License 2 немесе одан кейінгі нұсқасы бойынша шығарылды.

Компилятор

Haxe тілі байт-кодқа компиляцияланады, оны мақсатты виртуалды машиналар тікелей орындай алады. Ол C++, JavaScript, PHP, C#, Java, Python және Lua кодтарына компиляциялана алады. Haxe-де eval деп аталатын интерпретатор бар. Бұл интерпретатор сонымен қатар абстрактілік синтаксистік ағашты (AST) өзгертуге мүмкіндік беретін макростарды орындау үшін компиляция уақытында қолданылады. Бұл бірнеше бастапқы код тілдеріне компиляциялау стратегиясы бір рет жазу, кез-келген жерде орындау парадигмасынан рухландырылған. Сонымен қатар, ол бағдарламашыға жұмысқа арналған ең жақсы платформаны таңдауға мүмкіндік береді. Әдеттегі Haxe бағдарламалары барлық платформаларда бірдей орындалады, бірақ әзірлеушілер платформаға тән кодты көрсете алады және басқа платформаларда компиляциялаудан сақтану үшін шартты компиляцияны қолдана алады. Haxe компиляторы - оптимизациялық компилятор, және құрастырылған бағдарламалардың орындалу уақытын оңтайландыру үшін өрістер мен функцияларды ендіруді, құйрық рекурсиясын жоюды, тұрақты бүктеуді, циклдерді ашуды және өлі кодты жоюды (DCE) қолданады. Haxe компиляторы нөлдік қауіпсіздікті ұсынады, ол нөлдік мәндер үшін компиляция уақытын тексереді.

Тіл

Haxe - объектке бағдарланған бағдарламалауды, жалпылама бағдарламалауды және әр түрлі функционалдық бағдарламалау конструкцияларын қолдайтын жалпы мақсаттағы тіл. Итерациялар, ерекшеліктер және кодтың көрінісі сияқты ерекшеліктер тілдің және кітапханалардың функцияларына да кіреді. Бағдарламалау тілдері арасында ерекшеленетін Haxe-де күшті де, динамикалық та типтік жүйе бар. Компилятор типтерді имплицитті түрде типтік қорытындылауды қолдана отырып тексереді және компиляция уақытында қателерді береді, бірақ ол сонымен қатар бағдарламашыға типтік тексеруді айналып өтуді және мақсатты платформаның динамикалық типті өңдеуіне сүйенуге мүмкіндік береді. Барлық жергілікті мақсатты API-лерді пайдалануға болады.

Жүйенің түрі

Хакстің күрделі және икемді үлгісі бар. Ол ұсынатын типтер кластар, интерфейстер, функция әдісі типтері, анонимді типтер, алгебралық деректер типтері (Hax-те enum деп аталады) және абстрактіл типтер. Параметриялық полиморфизм кластармен, алгебралық типтермен және функция типтерімен мүмкін, бұл тілдің типті өшіруге негізделген жалпы бағдарламалауға қолдау көрсетеді. Бұған типтік конструкторларда болмаса да, полиморфтық функциялардың дисперсиясын қолдау жатады. Тип жүйесі, егер оларды қолдайтын мақсаттармен пайдалану үшін динамикалық типтеу үшін түсініктемелер болмаса, статикалық болып табылады. Құралды тексеру атаулы типтеуден кейін жүргізіледі, оның орнына құрылымдық типтеу қолданылатын анонимді типтерді қоспағанда. Сонымен қатар, түрін анықтау қолдайды, түрін түсіндірместен айнымалыларды жариялауға мүмкіндік береді.