Linguaggi di programmazione, linguaggi posizionali e lingue naturali

7

Alcuni linguaggi di programmazione sono modellati sul codice macchina, come i linguaggi di assemblaggio. Altre lingue sono modellate su una lingua naturale, la lingua inglese. Altri non sono modellati su alcun codice macchina o linguaggio naturale. Lingue come PROLOG, ad esempio, non seguono nessuno dei due modelli.

Mi sono imbattuto in questo modulo Perl Lingua :: Romana :: Perligata , che permette di scrivere programmi usando una sintassi molto simile al latino.

Esistono linguaggi di programmazione con sintassi posizionale inferiore?

Esistono altri linguaggi o moduli che ti consentono di scrivere in sintassi ispirati ad altre lingue naturali, come il francese, l'ebraico o il farsi? C'è un elenco molto lungo su Wikipedia , ma la maggior parte di questi progetti è morta.

C'è una domanda relativa a StackOverflow . La risposta che è stata accettata è "Usa Google".

    
posta Виталий Олегович 29.04.2012 - 14:50
fonte

2 risposte

2

L'unico linguaggio di programmazione scritto attualmente in uso che riesco a immaginare è l'HTML. Ora, a seconda della tua definizione del linguaggio di programmazione, questo può o non può contare.

Per aiutarti a capire perché non ci sono molti linguaggi di programmazione ad alto utilizzo che hanno una sintassi posizionale minore devi capire come è progettata la maggior parte dei linguaggi di programmazione. La maggior parte dei linguaggi di programmazione si basa su grammatiche non ambigue, principalmente mediante l'uso di grammatiche LL e LR. Al fine di mantenere le grammatiche inequivocabili, la maggior parte della tecnologia si basa sull'uso dell'ordinamento dei simboli e delle parole, ad es. terminali, per rendere l'input univoco. Ciò che state cercando sono le lingue che rinunciano alla posizione per rendere la grammatica univoca. Se i compilatori non possono usare la posizione per decidere se la grammatica non è ambigua, il compilatore ha bisogno di altri suggerimenti per rendere la grammatica univoca, quindi prefissi come #,%, 'e ". Un'altra tecnica è associare le parole chiave a ciascun valore, cioè width = 10, che è ciò che fa HTML. Se crei una grammatica che non usa grammatiche LL e LR, devi usare una tecnologia diversa per risolvere ambiguità che tipicamente usano il backtracking che richiede una grande quantità di elaborazione del computer per risolvere il problema ambiguità.

Le lingue dichiarative sono le più vicine in generale che conosco come PROLOG e SQL, ma richiedono nuovamente l'uso di alcuni valori posizionali.

Gli unici altri linguaggi che vengono in mente sono la lingua parlata nei sistemi AI che elaborano l'input come Watson , ma ancora una volta consideri questo un linguaggio di programmazione; se consideri SQL un linguaggio di programmazione, allora perché non una query verbale per Watson.

    
risposta data 29.04.2012 - 15:40
fonte
2

Automazione dei criteri Oracle ha regole aziendali codificate in linguaggio naturale. Vale la pena dare un'occhiata.

Un esempio è:

Human Resources Policy 100 – Maternity Leave 

100.1. The employee is eligible for maternity leave if

a. The employee is female and
b. Either
 i. The employee has given birth to a natural child or
 ii. The employee has taken legal custody of an adopted child
 and
c. The employee is a full time employee and
d. The employee has been employed for at least 12 months continuously

fonte originale dell'esempio.

La documentazione ufficiale di Oracle è qui .

    
risposta data 22.05.2012 - 20:12
fonte

Leggi altre domande sui tag