Haxe

ohjelmointikieli
(Ohjattu sivulta HaXe)

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.
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

Historia muokkaa

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 muokkaa

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ä muokkaa

Suosituimpia ja helppokäyttöisimpiä ohjelmointiympäristöjä ovat:

Kielen ominaisuudet muokkaa

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 muokkaa

  1. Haxe: Cross-platform Development's Best-kept Secret | Toptal® Toptal Engineering Blog. Viitattu 17.8.2023. (englanniksi)