EnglezăFrancezăSpaniolă

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, si fst-latice. Reprezentarea traductorului compact care este generată cu
steag-ul -c, este susținut de fst-infl2, fst-tren, si 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 si 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
    Psi
    Psi
    Psi este XMPP puternic multiplatformă
    client conceput pentru utilizatori experimentați.
    Există versiuni disponibile pentru MS
    Windows, GNU/Linux și macOS.. Public:
    Utilizatori finali...
    Descărcați Psi
  • 2
    Volei Blobby 2
    Volei Blobby 2
    Continuarea oficială a celebrului
    Jocul arcade Blobby Volley 1.x...
    Public: utilizatori finali/desktop. Utilizator
    interfață: OpenGL, SDL. Programare
    Limbaj: C++, Lua. C...
    Descărcați Blobby Volley 2
  • 3
    SuiteCRM
    SuiteCRM
    SuiteCRM este clientul premiat
    Managementul relațiilor (CRM)
    aplicație adusă de autori
    și întreținerii, SalesAgility. Este
    mosul lumii...
    Descărcați SuiteCRM
  • 4
    Poweradmin
    Poweradmin
    Poweradmin este un DNS bazat pe web
    instrument de administrare pentru serverul PowerDNS.
    Interfața are suport complet pentru majoritatea
    a caracteristicilor PowerDNS. Are plin
    a sustine...
    Descărcați Poweradmin
  • 5
    Gin Web Framework
    Gin Web Framework
    Gin este un cadru web incredibil de rapid
    scris în Golang care poate efectua până la
    De 40 de ori mai rapid, datorită acestuia
    API de tip martini și versiune personalizată a
    httprout...
    Descărcați Gin Web Framework
  • 6
    CEREUS LINUX
    CEREUS LINUX
    CEREUS LINUX bazat în MX LINUX con
    mai multe medii de birou. Aceasta este
    o aplicație care poate fi, de asemenea, preluată
    din
    https://sourceforge.net/projects/cereu...
    Descărcați CEREUS LINUX
  • Mai mult »

Comenzi Linux

  • 1
    aa-clickquery
    aa-clickquery
    aa-clickquery - program pentru interogare
    click-apparmor DESCRIERE: Acest program
    este folosit pentru a interoga click-apparmor pentru
    informație. UTILIZARE: aa-clickquery
    --click-fra...
    Rulați aa-clickquery
  • 2
    aa-exec-clic
    aa-exec-clic
    aa-exec-click - program pentru executare
    faceți clic pe pachete sub izolare
    DESCRIERE: Acest program este folosit pentru
    executați clic pachet sub AppArmor
    izolarea. eu...
    Rulați aa-exec-click
  • 3
    cpio
    cpio
    cpio - copiați fișiere în și din arhive...
    Rulați cpio
  • 4
    cpipe
    cpipe
    cpipe - copiați stdin în stdout while
    numărarea octeților și raportarea progresului...
    Rulați cpipe
  • 5
    FvwmSave
    FvwmSave
    FvwmSave - aspectul desktop-ului Fvwm
    se salvează modulul...
    Rulați FvwmSave
  • 6
    FvwmSave1
    FvwmSave1
    FvwmSave - aspectul desktop-ului FVWM
    se salvează modulul...
    Rulați FvwmSave1
  • Mai mult »

Ad