EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

fst-compiler - Online în cloud

Rulați fst-compiler în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda fst-compiler care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


fst-compiler, fst-compiler-utf8 - Două compilatoare pentru programe SFST

REZUMAT


fst-compilator dosar-gramatica [ fisier de iesire ]
fst-compiler-utf8 dosar-gramatica [ fisier de iesire ]

OPŢIUNI


-c Păstrați traductorul în format compact, care este utilizat de fst-infl2.

-l Păstrați traductorul în format lowmem.

-s Suprafața comutatorului și stratul de analiză al traductorului. Trebuie să utilizați acest comutator
pentru a utiliza fst-infl (fst-infl2, fst-infl3) pentru generare mai degrabă decât pentru analiză.

DESCRIERE


fst-compilator este un compilator pentru programe cu traductoare cu stări finite. Acesta generează un minimizat
traductor cu stare finită care poate fi utilizat cu fst-mor, fst-infl, fst-print, fst-compare,
fst-parse, și fst-latice. Reprezentarea traductorului compact care este generată cu
steag-ul -c, este susținut de fst-infl2, fst-tren, și primul meci. Eficient de memorie
Reprezentarea traductorului care este generată cu indicatorul -l este suportată doar de fst-
infl3.

Primul argument al programului este numele unui fișier care conține programul traductorului.
Limbajul de programare este descris mai jos. Al doilea argument este numele fișierului
la care se va scrie traductorul rezultat în formă binară. Dacă un al doilea argument este
lipsește, rezultatul va fi scris în stdout.

fst-compiler-utf8 difera de fst-compilator numai în codificarea caracterelor. fst-compiler-
utf8 acceptă codificarea UTF8 a fișierelor sursă, în timp ce fst-compilator este de folosit pentru
Codurile de caractere de 8 biți, cum ar fi latin1, care sunt o extensie a codului ASCII. informație
despre codificare este stocat în fișierele traductorului și utilizat de celelalte programe SFST.

FILE FORMATE


Un program traductor constă dintr-o secvență (opțională) de alfabet și variabil
definiții urmate de un singur traductor expresie care definește rezultatul
traductor.

Alfabet

O definiție alfabetică constă din cuvântul cheie ALFABET urmat de = și un traductor
expresie de ex

ALFABET = [az]:[AZ]

Această comandă redefinește alfabetul ca setul de perechi de simboluri care apar pe
tranziții ale traductorului. Aparițiile operatorilor cu două niveluri, operatorilor de negație și
punctele necotate trebuie să fie întotdeauna precedate de o definiție alfabetică.

Variabile

Există două tipuri diferite de variabile. Simbol set variabile sunt închise de hash
semnele (#) și iau secvențe de simboluri (vezi mai jos) ca valori:

#UC# = AZ
#LC# = az

Traductor variabile sunt închise de semne dolar și iau expresii traductoare ca
valori:

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

Variabilele al căror nume începe cu simbolul „=” sunt speciale acord variabile. Daca un
variabila acord apare de mai multe ori într-o expresie traductor, va avea întotdeauna
aceeași valoare. Luați în considerare următorul program de traductor:

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

Traductorul de rezultat recunoaște șirurile aXa, bXb și cXc. Doar traductoare aciclice
(adică traductoare cu un set finit de mapări șiruri) pot fi atribuite acordului
variabile.

Simboluri

Un simbol este fie

- un singur caracter ca A s 5,

- un caracter citat ca \* sau \_,

- un simbol cu ​​mai multe caractere ca sau (ceea ce este întotdeauna
cuprinse între paranteze unghiulare) sau

- o bară oblică inversă urmată de un număr care este codul numeric al
personaj desemnat

- simbolul nul <>.

Secvență de simboluri

O secvență de simboluri este o secvență de caractere, simboluri cu mai multe caractere și caractere
intervale, de exemplu az \. .

interval de simboluri

Un interval de simboluri este fie

- un singur simbol

- o secvență de simboluri cuprinse între paranteze drepte, cum ar fi [A-Za-z] sau

- o secvență de simboluri care începe cu ^ și sunt cuprinse între paranteze drepte ca [^A-Za-z]
(desemnând complementul lui [a-zA-Z]) sau

- perioada (care reprezintă orice simbol din alfabet)

Expresii traductoare

O expresie a traductorului (TE) este definită recursiv după cum urmează:

- O pereche de două intervale de simboluri separate prin două puncte este un TE.

[az]:[aZ]

- Un singur interval de simbol precum [az] este un TE.
Este o formă scurtă pentru [az]:[az].

- Două secvențe de simboluri cuprinse între acolade și separate prin două puncte sunt
a mancat. {a[bc]}:{def} este echivalent cu a:db:e <>:f | a:dc:e <>:f.

- XY este un TE dacă X și Y sunt TE.
(Ofertele libere sunt ignorate dacă nu sunt citate.)

- (X) este un TE dacă X este un TE.

- X op este un TE este X este un TE și op este fie * (operatorul stea al lui Kleene), +
(operatorul plus al lui Kleene) sau ? (operator de opționalitate)

- op X este un TE este X este un TE și op este fie ! (operator de negație), ^
(operator de extragere a limbii țintă), _ (operator de extracție a limbii sursă) sau ^_
(operator comutator sursă și țintă).

- X op Y este un TE este X și Y sunt TE și op este fie & (conjuncție
operator), | (operator de disjuncție), || (operator de compoziție) sau - (scădere
operator)

- L x op y R este un TE dacă L și R sunt TE, x și y sunt intervale de simbol și
op este fie => (restricție pe două niveluri), <= (coerciție pe două niveluri), fie <=> (două niveluri
restricție și constrângere).

- X op L__R este un TE dacă X, L și R sunt TE și op este fie ^-> (în sus
înlocuire), _-> (înlocuire în jos), /-> (înlocuire spre stânga) sau \-> (înlocuire spre dreapta
înlocuire). În plus, L și R trebuie să definească automate (adică care mapează șirurile lor
asupra lor înșiși). Acești operatori corespund operatorilor de înlocuire ai Karttunen. Dacă
săgeata este urmată de un semn de întrebare (?), înlocuirea devine opțională.

- X << l este un TE dacă X este un TE și l are oricare dintre forme
a sau forma a:b unde a și b sunt caractere sau simboluri simple. Rezultatul este a
traductor unde l a fost introdus liber în X. Traductorul ab << c de exemplu este
echivalent cu c*ac*bc*.

- X op Y L1__R2, ... , LN__RN este un TE dacă X,Y, L1 prin LN și R1
prin RN sunt TE, iar op este fie => (restricție generală), <= (coerciție generală), ^=>
(restricție generală a suprafeței), ^<= (constrângere generală a suprafeței), ^<=> (suprafață generală
restricție și constrângere), _=> (restricție profundă generală), _<= (constrângere profundă generală),
_<=> (restricție profundă și constrângere generală). (Acești operatori au fost implementați în continuare
o sugestie a lui Anssi Yli-Jyra.)

- „fname” este un TE. Compilatorul citește fișierul numit fname și se întoarce
într-un traductor de forma line1|line2|line3|... unde linex este a x-a linie a
fișierul. Toate caracterele, altele decât : și \ sunt interpretate literal (adică nu ca
operatori). Acest TE este de obicei folosit, de exemplu, pentru a citi lista de morfeme dintr-un fișier.

-" " este un TE. Compilatorul citește un traductor pre-compilat din
fișierul numit fname. Acest

Alte caracteristici

Comentariile încep cu simbolul % și se extind până la sfârșitul rândului. Spațiile libere sunt ignorate
dacă nu sunt citate. Expresiile se termină la sfârșitul unei linii, cu excepția cazului în care sfârșitul rândului
este precedat de o bară oblică inversă. Comanda

#include „fname”

poate fi folosit pentru a introduce codul sursă dintr-un fișier numit fname. Comanda

RE >> „fname”

stochează expresia regulată RE în fișierul fname. Comanda

#utilizați hopcroft

spune compilatorului să folosească algoritmul de minimizare Hopcroft de acum înainte și

#utilizare implicit

comută înapoi la algoritmul implicit de minimizare (Brzozowski). Comanda

EXEMPLU


Iată un exemplu de program de traductor simplu. Presupunând că fișierul „adj-stems”
conţine cele două rânduri

uşor
întârziat
mare

acest traductor va analiza corect formele adjectivale ușor, mai ușor, cel mai ușor și mai târziu,
mai târziu, și mai târziu.

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

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

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

$R$ = $R$ și $R2$

$Stems$ = „tulpini adj”

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

$S$ || $R$

EXIT STAREA


fst-compilator returnează 0 dacă nu apare o eroare.

Utilizați fst-compiler online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

  • 1
    Phaser
    Phaser
    Phaser este o deschidere rapidă, gratuită și distractivă
    cadru de joc HTML5 sursă care oferă
    Redare WebGL și Canvas
    browsere web desktop și mobile. Jocuri
    poate fi co...
    Descărcați Phaser
  • 2
    Motor VASSAL
    Motor VASSAL
    VASSAL este un motor de joc pentru creare
    versiuni electronice ale plăcii tradiționale
    și jocuri de cărți. Oferă suport pentru
    redarea și interacțiunea pieselor de joc,
    și ...
    Descărcați VASSAL Engine
  • 3
    OpenPDF - Furk of iText
    OpenPDF - Furk of iText
    OpenPDF este o bibliotecă Java pentru creare
    și editarea fișierelor PDF cu un LGPL și
    Licență open source MPL. OpenPDF este
    Succesorul LGPL/MPL open source al iText,
    o ...
    Descărcați OpenPDF - Furk of iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Sistem pentru automatizare
    Analize Geoștiințifice - este un Geografic
    Sistemul informatic (GIS) software cu
    capacități imense pentru geodate
    procesare și ana...
    Descărcați SAGA GIS
  • 5
    Caseta de instrumente pentru Java/JTOpen
    Caseta de instrumente pentru Java/JTOpen
    IBM Toolbox for Java / JTOpen este un
    biblioteca de clase Java care acceptă
    programare client/server și internet
    modele către un sistem care rulează OS/400,
    i5/OS, o...
    Descărcați Toolbox pentru Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (sau D3 pentru documente bazate pe date)
    este o bibliotecă JavaScript care vă permite
    pentru a produce date dinamice, interactive
    vizualizări în browsere web. Cu D3
    tu...
    Descărcați D3.js
  • Mai mult »

Comenzi Linux

  • 1
    abidiff
    abidiff
    abidiff - comparați ABI-urile fișierelor ELF
    abidiff compară aplicația binară
    Interfețe (ABI) a două biblioteci partajate
    în format ELF. Emite un sens
    repor ...
    Fugi abidiff
  • 2
    abidw
    abidw
    abidw - serializați ABI-ul unui ELF
    fișierul abidw citește o bibliotecă partajată în ELF
    format și emite o reprezentare XML
    a ABI-ului său la ieșirea standard. The
    emis...
    Run abidw
  • 3
    copac2xml
    copac2xml
    bibutils - conversie bibliografie
    utilitati...
    Rulați copac2xml
  • 4
    Copt
    Copt
    copt - optimizator peephole SYSNOPIS:
    fișier copt.. DESCRIERE: copt este a
    optimizator de uz general pentru vizor. Aceasta
    citește codul din intrarea sa standard și
    scrie un...
    Fugi copt
  • 5
    gather_stx_titles
    gather_stx_titles
    gather_stx_titles - aduna titlul
    declarații din documentele Stx...
    Rulați gather_stx_titles
  • 6
    gatling-banc
    gatling-banc
    bench - http benchmark...
    Alerga gatling-bench
  • Mai mult »

Ad