Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Descrizione linguaggio

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto UtenteMassimoB, Foto Utentefairyvilje

0
voti

[1] Descrizione linguaggio

Messaggioda Foto Utentevenexian » 27 feb 2019, 13:34

Nella descrizione di un file di configurazione ho trovato delle regole espresse con un formalismo simile a quello utilizzato nei corsi di 'automi e linguaggi formali', ma con differenze sostanziali. Per intenderci, intendo delle stringhe descrittive con significati del tipo:

0-9 i numeri da zero a nove
a-z le lettere minuscole
A-Z le lettere maiuscole
[ x ]... ripetizione contenuto zero o più volte
( x )... ripetizione contenuto una o più volte
'x' un singolo carattere

e così via.

Con questo formalismo, un numero decimale viene descritto come

['-']('0-9'['0-9']...['.'['0-9'['0-9']...]])|('.'0-9'['0-9']...)

che descrive numeri del tipo 0, 1, 1.2, 0.1, .12, ecc.

Esiste uno standard per questo tipo di descrizione (ISO o similare)?
Immagine
Avatar utente
Foto Utentevenexian
6.039 2 4 7
Master
Master
 
Messaggi: 2142
Iscritto il: 13 mag 2017, 10:07
Località: Venezia (ma va?)

1
voti

[2] Re: Descrizione linguaggio

Messaggioda Foto UtentePietroBaima » 27 feb 2019, 13:58

Generatore codice per articoli:
nomi
emoticon
citazioni
formule latex

Io capisco le cose per come le scrivete. Per esempio: K sono kelvin e non chilo, h.z è la costante di Planck per zepto o per la zeta di Riemann e l'inverso di una frequenza non si misura in siemens.
Avatar utente
Foto UtentePietroBaima
75,9k 6 12 13
G.Master EY
G.Master EY
 
Messaggi: 9046
Iscritto il: 12 ago 2012, 1:20
Località: Londra

1
voti

[3] Re: Descrizione linguaggio

Messaggioda Foto Utentexyz » 27 feb 2019, 14:44

venexian ha scritto:['-']('0-9'['0-9']...['.'['0-9'['0-9']...]])|('.'0-9'['0-9']...)
che descrive numeri del tipo 0, 1, 1.2, 0.1, .12, ecc.

Da esporto delle regular expression l'espressione non è proprio scritta bene e non copre tutti i possibili casi (+123, 1.2E-3)

Il linguaggio di programmazione con la più completa e complessa implementazione delle regular expression è il Perl:

https://perldoc.perl.org/perlre.html

Esisto dei programmi per verificare come viene elaborata la stringa in ingresso attraverso una regular expression, alcuni sono anche on-line:

https://regexr.com
https://regex101.com

Esistono collezioni di regular expression già pronte, ad esempio:

http://regexlib.com
Avatar utente
Foto Utentexyz
5.775 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1521
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[4] Re: Descrizione linguaggio

Messaggioda Foto Utentevenexian » 27 feb 2019, 15:28

Grazie. 'Espressioni Regolari' era proprio l'informazione che cercavo.

Da quanto vedo, però, non esiste un unico standard, ma vari standard per vari casi (come a dire nessuno standard). A dire il vero, per un argomento così importante mi sarei aspettato un ISO specifico.

xyz ha scritto:Da esporto delle regular expression l'espressione non è proprio scritta bene e non copre tutti i possibili casi (+123, 1.2E-3)

A dire il vero, è scritta bene.
Non è l'espressione per ogni numero in virgola mobile, ma quella per i campi numerici dello standard ISO-6983 (il G-Code utilizzato nelle macchine a controllo numerico). Non segue lo standard IEEE, ma identifica correttamente tutti i casi.
Immagine
Avatar utente
Foto Utentevenexian
6.039 2 4 7
Master
Master
 
Messaggi: 2142
Iscritto il: 13 mag 2017, 10:07
Località: Venezia (ma va?)

0
voti

[5] Re: Descrizione linguaggio

Messaggioda Foto Utentexyz » 27 feb 2019, 19:08

venexian ha scritto:...non esiste un unico standard, ma vari standard...

Un tentativo di standard è stato fatto per i sistemi operativi POSIX:

http://man7.org/linux/man-pages/man7/regex.7.html

ma poi ogni programma ha la sua implementazione. Le regole base sono rispettate ma poi ci sono delle differenze e estensioni.

xyz ha scritto:Non è l'espressione per ogni numero in virgola mobile, ma quella per i campi numerici dello standard ISO-6983

Ok, quindi sono numeri molto specifici non quelli IEEE 754.
Avatar utente
Foto Utentexyz
5.775 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1521
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin


Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti