Haxe
Haxe | |
---|---|
Paradigma | moniparadigma |
Tyypitys | vahva, dynaaminen |
Yleinen suoritusmalli | käännettävä |
Muistinhallinta | roskienkeruu |
Julkaistu | 2005 |
Kehittäjä | Nicolas Canasse |
Vaikutteet | Actionscript, OCaml, Java |
Verkkosivu | haxe.org |
Infobox OK |
Haxe on useassa ympäristössä toimiva ohjelmointikieli[1], jonka kääntäjä voi tuottaa useita yleisessä käytössä olevia ohjelmointikieliä. Sen mahdollisia kohteita ovat mm. seuraavat:
- Flash-sovellukset
- Asiakaspuolen websovellukset
- Apachen CGI-sovellukset
- Omillaan toimivat työpöytäsovellukset.
Historia
Haxen kehitys alkoi 22.10.2005. Versio 1.0 julkaistiin 17.4.2006 ja versio 2.0 julkaistiin 28.7.2008.
Viimeisin versio 3.4.0-rc.1 on julkaistu 30.11.2016.
Käännöskohteet
Haxe-kielisiä ohjelmia voi kääntää useissa eri virtuaalikoneissa suoritettaviksi kieliksi, sekä natiivikoodiksi käännettäviksi kieliksi kuten C++. Versio 3.3.0 tukee seuraavia käännöskohteita:
- Flash 6-8
- Flash 9-10
- Neko
- PHP
- Actionscript 3
- Java
- JavaScript
- C++
- C#
- Python
- Lua
Suositeltuja Ohjelmointiympäristöjä
Suosituimpia ja helppokäyttöisimpiä ohjelmointiympäristöjä ovat:
- HaxeDevelop (Arkistoitu – Internet Archive)
- FlashDevelop
Kielen ominaisuudet
Haxe muistuttaa ActionScript- ja JavaScript-kieliä, mutta sisältää muitankin ominaisuuksia. Se on olio-ohjelmointikieli, jossa on poikkeuksia. Sen tyyppimalla on vahva tyypitys, joka kuitenkin mahdollistaa dynaamisten tyyppien käytön. Kielessä on hyvä tuki geneerisyydelle, reflektiolle ja funktionaaliselle ohjelmoinille.
Enumeroidut tyypit ovat merkittävässä asemassa haxe-kielessä. Niillä voi olla parametrejä ja ne voivat olla rekursiivisia, joten ne muistuttavat esim. Haskell- ja ML-kielten algebrallisia tietotyyppejä.
enum Color { red; green; blue; rgb: ( r : Int, g : Int, b : Int ); } class Colors { static function toInt ( c : Color ) : Int { return switch ( c ) { case red: 0xFF0000; case green: 0x00FF00; case blue: 0x0000FF; case rgb(r, g, b): (r << 16) | (g << 8) | b; } } static function validCalls() { var redint = toInt(Color.red); var rgbint = toInt(Color.rgb(100,100,100)); } }
(muokattu haxe-oppaan pohjalta)
Lähteet
- ↑ Haxe: Cross-platform Development's Best-kept Secret | Toptal® Toptal Engineering Blog. Viitattu 17.8.2023. (englanniksi)