EngelsFransSpaans

OnWorks-favicon

fst-compiler - Online in de cloud

Voer fst-compiler uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht fst-compiler die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


fst-compiler, fst-compiler-utf8 - Twee compilers voor SFST-programma's

KORTE INHOUD


fst-compiler grammatica-bestand [ output-bestand ]
fst-compiler-utf8 grammatica-bestand [ output-bestand ]

OPTIES


-c Bewaar de transducer in een compact formaat dat wordt gebruikt door fst-infl2.

-l Bewaar de transducer in lowmem-formaat.

-s Schakel oppervlak en analyselaag van de transducer. Deze schakelaar moet je gebruiken
bestelling te gebruiken eerste-infl (fst-infl2, eerste-infl3) voor generatie in plaats van analyse.

PRODUCTBESCHRIJVING


fst-compiler is een compiler voor finite-state transducerprogramma's. Het genereert een geminimaliseerd
eindige toestandstransducer die kan worden gebruikt met eerste morgen, eerste-infl, eerste afdruk, eerst vergelijken,
eerste-ontleden, en eerste rooster. De compacte transducerweergave die wordt gegenereerd met
de vlag -c wordt ondersteund door eerste-infl2, eerste trein, en eerste wedstrijd. De geheugen-efficiënt
transducerrepresentatie die wordt gegenereerd met de vlag -l, wordt alleen ondersteund door eerste-
infl3.

Het eerste programmaargument is de naam van een bestand dat het transducerprogramma bevat.
De programmeertaal wordt hieronder beschreven. Het tweede argument is de naam van het bestand
waarnaar de resulterende transducer in binaire vorm zal worden geschreven. Als een tweede argument is
ontbreekt, wordt er naar de uitvoer geschreven stevig.

fst-compiler-utf8 verschilt fst-compiler alleen in de tekencodering. fst-compiler-
utf8 ondersteunt UTF8-codering van de bronbestanden terwijl fst-compiler voor gebruikt moet worden
8-bits karaktercodes zoals latin1 die een uitbreiding zijn van de ASCII-code. Informatie
over de codering wordt opgeslagen in de transducerbestanden en gebruikt door de andere SFST-programma's.

FILE FORMATS


Een transducerprogramma bestaat uit een (optionele) reeks van alfabet en variabele
definities gevolgd door een enkele omzetter uitdrukking die het resultaat bepaalt
omvormer.

Alfabet

Een alfabetdefinitie bestaat uit het sleutelwoord ALPHABET gevolgd door = en een transducer
uitdrukking bijv

ALFABET = [az]:[AZ]

Deze opdracht herdefinieert het alfabet als de set symboolparen die voorkomt op de
overgangen van de transducer. Voorkomen van operatoren op twee niveaus, ontkenningsoperatoren en
niet-geciteerde perioden moeten altijd worden voorafgegaan door een alfabetische definitie.

Variabelen

Er zijn twee verschillende soorten variabelen. Symbool reeks variabelen zijn ingesloten door hasj
tekens (#) en neem symboolreeksen (zie hieronder) als waarden:

#UC# = AZ
#LC# = az

Omzetter variabelen worden omsloten door dollartekens en nemen transduceruitdrukkingen als
waarden:

$MAP$ = [az]:[AZ]+
$MAP$ = [#LC#]:[#UC#]+

Variabelen waarvan de naam begint met het symbool `=' zijn speciaal overeenkomst variabelen. Als een
Als de overeenkomstvariabele meer dan eens voorkomt in een transduceruitdrukking, zal dit altijd zo zijn
dezelfde waarde. Beschouw het volgende transducerprogramma:

$=1$ = [abc]
$=1$X$=1$

De resultaattransducer herkent de strings aXa, bXb en cXc. Alleen acyclische transducers
(dwz transducers met een eindige reeks stringtoewijzingen) kunnen worden toegewezen aan een overeenkomst
variabelen.

Symbolen

Een symbool is ofwel

- een enkel karakter zoals A s 5,

- een teken tussen aanhalingstekens zoals \* of \_,

- een symbool met meerdere tekens zoals of (wat altijd is
tussen punthaken) of

- een backslash gevolgd door een cijfer dat de numerieke code is van de
aangewezen karakter

- het nulsymbool <>.

Symbool volgorde

Een symboolreeks is een reeks tekens, symbolen met meerdere tekens en tekens
bereiken, bijv. az \. .

symbool bereik

Een symboolbereik is ofwel

- een enkel symbool

- een reeks symbolen tussen vierkante haken zoals [A-Za-z] of

- een reeks symbolen die begint met ^ en tussen vierkante haken staat, zoals [^A-Za-z]
(aanduiding van het complement van [a-zA-Z]) of

- de periode (die elk symbool uit het alfabet vertegenwoordigt)

Transducer uitdrukkingen

Een transducerexpressie (TE) wordt recursief als volgt gedefinieerd:

- Een paar van twee symboolbereiken gescheiden door een dubbele punt is een TE.

[az]:[aZ]

- Een enkel symboolbereik zoals [az] is een TE.
Het is een korte vorm voor [az]:[az].

- Twee symboolreeksen tussen accolades en gescheiden door een dubbele punt zijn
at. {a[bc]}:{def} is gelijk aan a:db:e <>:f | a:dc:e <>:f.

- XY is een TE als X en Y TE's zijn.
(Spaties worden genegeerd, tenzij ze tussen aanhalingstekens staan.)

- (X) is een TE als X een TE is.

- X op is een TE is X is een TE en op is ofwel * (Kleene's steroperator), +
(Kleene's plus-operator), of ? (optie-operator)

-op X is een TE is X is een TE en op is ofwel! (ontkenningsoperator), ^
(operator doeltaalextractie), _ (operator brontaalextractie) of ^_
(bron- en doelschakelaaroperator).

- X op Y is een TE is X en Y zijn TEs en op is of & (conjunctie
exploitant), | (disjunctie-operator), || (compositie-operator), of - (aftrekken
bediener)

- L x op y R is een TE als L en R TE's zijn, x en y symboolbereiken en zijn
op is ofwel => (beperking op twee niveaus), <= (dwang op twee niveaus) of <=> (beperking op twee niveaus)
beperking en dwang).

- X op L__R is een TE als X, L en R TE's zijn en op ofwel ^-> (opwaarts
vervanging), _-> (vervanging naar beneden), /-> (vervanging naar links) of \-> (vervanging naar rechts
vervanging). Bovendien moeten L en R automaten definiëren (dwz die hun strings in kaart brengen
op zichzelf). Deze operators komen overeen met de vervangende operators van Karttunen. Als de
pijl wordt gevolgd door een vraagteken (?), de vervanging wordt optioneel.

- X << l is een TE als X een TE is, en l een van beide is
a of de vorm a:b waarbij a en b enkele karakters of symbolen zijn. Het resultaat is een
transducer waar l vrij in X werd ingebracht. De transducer ab << c is bijvoorbeeld
gelijk aan c*ac*bc*.

- X op Y L1__R2, ... , LN__RN is een TE als X,Y, L1 tot en met LN en R1
via RN zijn TE's, en op is ofwel => (algemene beperking), <= (algemene dwang), ^=>
(algemene oppervlaktebeperking), ^<= (algemene oppervlaktedwang), ^<=> (algemene oppervlaktedwang).
beperking en dwang), _=> (algemene diepe beperking), _<= (algemene diepe dwang),
_<=> (algemene diepe beperking en dwang). (Deze operators zijn als volgt geïmplementeerd
een suggestie van Anssi Yli-Jyra.)

- "fnaam" is een TE. De compiler leest het bestand met de naam fname en draait
het in een transducer van de vorm lijn1|lijn2|lijn3|... waarbij linex de x-de lijn is van
het bestand. Alle tekens behalve : en \ worden letterlijk geïnterpreteerd (dus niet als
operatoren). Deze TE wordt meestal gebruikt om bijvoorbeeld een morfeemlijst uit een bestand te lezen.

- " " is een TE. De compiler leest een vooraf gecompileerde transducer uit
het bestand met de naam fname. Dit

Verdere functies

Opmerkingen beginnen met het symbool % en lopen door tot het einde van de regel. Spaties worden genegeerd
tenzij ze worden geciteerd. Uitdrukkingen eindigen aan het einde van een regel, tenzij aan het einde van een regel
wordt voorafgegaan door een backslash. Het bevel

#include "fnaam"

kan worden gebruikt om broncode in te voegen vanuit een bestand met de naam fname. Het bevel

RE >> "fnaam"

slaat de reguliere expressie RE op in het bestand fname. Het bevel

#gebruik hopcroft

vertelt de compiler om vanaf nu het Hopcroft-minimalisatie-algoritme te gebruiken, en

#gebruik standaard

schakelt terug naar het standaard minimalisatie-algoritme (Brzozowski). Het bevel

VOORBEELD


Hier is een voorbeeld van een eenvoudig transducerprogramma. Ervan uitgaande dat het bestand "adj-stams"
bevat de twee regels

En het is heel gemakkelijk
laat
groot

deze transducer zal de bijvoeglijke naamwoorden correct analyseren eenvoudig, gemakkelijker, gemakkelijkst en laat,
later en laatste.

ALFABET = [a-zA-Z] y:ie:<> :<>

$R$ = y<=>i ( :<>e)

$R2$ = e<=><> ( :<>e)

$R$ = $R$ & $R2$

$Stems$ = "adj-stammen"

$S$ = $Stengels$ ( :<>| :{er}| :{Est})

$S$ || $R$

EXIT STATUS


fst-compiler geeft 0 terug, tenzij er een fout optreedt.

Gebruik fst-compiler online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    Psi
    Psi
    Psi is platformonafhankelijke krachtige XMPP
    client ontworpen voor ervaren gebruikers.
    Er zijn builds beschikbaar voor MS
    Windows, GNU/Linux en macOS.. Publiek:
    Eindgebruikers...
    Psi downloaden
  • 2
    Blobbyvolley 2
    Blobbyvolley 2
    Officiële voortzetting van de beroemde
    Blobby Volley 1.x arcadespel..
    Doelgroep: eindgebruikers/desktop. Gebruiker
    interface: OpenGL, SDL. Programmering
    Taal: C++, Lua. C...
    Blobbyvolley 2 downloaden
  • 3
    SuiteCRM
    SuiteCRM
    SuiteCRM is de bekroonde klant
    Relatiebeheer (CRM)
    toepassing aangeboden door auteurs
    en beheerders, SalesAgility. Het is de
    's werelds meest...
    SuiteCRM downloaden
  • 4
    Poweradmin
    Poweradmin
    Poweradmin is een webgebaseerde DNS
    beheertool voor PowerDNS-server.
    De interface heeft voor de meeste volledige ondersteuning
    van de kenmerken van PowerDNS. Het heeft vol
    steun...
    Poweradmin downloaden
  • 5
    Gin Web-framework
    Gin Web-framework
    Gin is een ongelooflijk snel webframework
    geschreven in Golang dat kan presteren tot
    40 keer sneller, dankzij zijn
    martini-achtige API en aangepaste versie van
    httproute...
    Gin webframework downloaden
  • 6
    CEREUS LINUX
    CEREUS LINUX
    CEREUS LINUX basado en MX LINUX con
    verschillende soorten escritorios. Dit is
    een toepassing die ook kan worden opgehaald
    van
    https://sourceforge.net/projects/cereu...
    CEREUS LINUX downloaden
  • Meer "

Linux-commando's

Ad