Fantom (programmeringsspråk) - Fantom (programming language)

Fantom
Fantom-logo.png
Paradigm multi-paradigm
Utvecklaren Brian Frank, Andy Frank
Uppträdde först 2005
Stabil frisättning
1.0.75 / 24 augusti 2020 ; 9 månader sen ( 2020-08-24 )
Skrivdisciplin statisk , dynamisk
Licens Academic Free License version 3.0
Filnamnstillägg .fan, .fwt, .pod
Hemsida www .fantom .org
Påverkad av
C # , Java , Scala , Ruby , Erlang

Fantom är ett objektorienterat programmeringsspråk för allmänt ändamål skapat av Brian och Andy Frank som körs på Java Runtime Environment (JRE), JavaScript och .NET Common Language Runtime (CLR) (.NET-stöd anses vara "prototyp" -status) . Dess primära designmål är att tillhandahålla ett standardbiblioteks- API som tar bort frågan om koden slutligen kommer att köras på JRE eller CLR. Precis som C # och Java använder Fantom en lockig stag-syntax . Språket stöder funktionell programmering genom stängningar och samtidighet genom Actor-modellen . Fantom tar ett "mitt på vägen" till sitt typsystem och blandar aspekter av både statisk och dynamisk typning .

Skriver

Fantoms typsystem är enkelt av design. Alla variabler är typiskt skrivna, som de är i C # och Java . Fantom avvisar generiska typer på grund av deras komplexitet, men den har en uppsättning av inbyggda generiska typer: List, Mapoch Func. Fantom kan också få känslan av ett dynamiskt skrivet språk genom dynamiska samtal och automatisk nedkastning . Fantom har ett lättanvänt reflektions- API och metaprogrammeringsfunktioner .

Fantom är öppen källkod under Academic Free License 3.0 och är tillgänglig för Windows och Unix-liknande plattformar (inklusive Mac OS X).

Skida

I Fantom kallas distributionsenheten en pod . Pods tar rollen som namnområden , paket och moduler . De lagras som .pod-filer, som är zip- filer som innehåller FCode (Fantom bytecode), dokumentationen och resursfilerna som krävs för att köra podden. En pod kan definiera valfritt antal typer för användning i andra bibliotek och applikationer. Ett podnamn kvalificerar fullt ut ett typnamn. Till exempel fwt::Widgetskiljer sig från webapp::Widget. Om en pod innehåller en typ med namnet Mainkan den köras på kommandoraden med:fan <podName>

Fantom-byggsystemet kan paketera en uppsättning Pods i ett JAR-arkiv genom build::JarDist.

Fantom Widget Toolkit

Fantom levereras med en standardfönstringsverktygssats som kallas Fantom Widget Toolkit, eller kort sagt FWT. Liksom Fantom var FWT utformad för att vara bärbar över flera plattformar. Det är för närvarande implementerat på JVM med Standard Widget Toolkit som backend. JavaScript-implementeringen stöds av canvas-elementet och JavaFX , vilket gör att FWT-applikationer kan köras i en webbläsare. Det finns planer för en CLR-implementering med Windows Forms .

Exempel på "Hello World"

Här är det klassiska Hello-världsprogrammet skrivet i Fantom:

// Hello from Fantom!
class HelloWorld
{
  static Void main()
  {
    echo("Hello, World!")
  }
}

Observera att "Void" är aktiverat. Detta beror på att Void är en klass, inte en primitiv typ i Fantom.

Namnbyte

Det ursprungliga namnet på Fantom-programmeringsspråket var Fan, uppkallat efter grannskapet där skaparna bor i Richmond, Virginia . Efter att språket fick en viss popularitet väckte medlemmar i samhället oro över sökbarheten i namnet. I november 2009 ändrades projektets namn officiellt från Fan till Fantom.

Andra funktioner

Fantom har andra användbara funktioner:

  • Fantom stöder import av Java-klasser och moduler med vissa begränsningar.
  • Heltal är 64-bitars. Till skillnad från Java och C # har Fantom inte långa eller korta heltalstyper.
  • Serialisering och deserialisering av klasser till / från strängar.
  • Fantom har inte stöd för tupler (det vill säga typerna som är cartesianska produkt andra typer)

Se även

Referenser

Vidare läsning

externa länkar