Qual è la "sintassi interna" di un linguaggio di programmazione?

0

Stavo leggendo un documento (PDF) che ha introdotto un termine, < em> sintassi interna , di cui non ho mai sentito parlare. Che cosa significa questo termine e in che cosa è diverso dalla sintassi sorgente ?

Sembra che la sintassi interna sia usata per dimostrare formalmente alcune proprietà della lingua (almeno in questo articolo). Mi piacerebbe conoscere la definizione esatta e lo sfondo dietro questa sintassi.

    
posta salman.mirghasemi 27.07.2011 - 16:42
fonte

2 risposte

4

Nel tuo documento di esempio collegato, ciò che l'auther si riferisce come Sintassi interna è semplicemente la grammatica della lingua, in questo caso espressa nel common EBNF (Extended Backus-Naur Form) notazione.

È una rappresentazione formale dei costrutti consentiti e di come possono apparire nel file sorgente della lingua, in quanto definisce in che modo le varie parole chiave e altri elementi della lingua possono e non possono apparire per avere un file valido.

Entrare in BNF e il nome della tua lingua preferita dovrebbe probabilmente restituire molti hit su qualsiasi motore di ricerca, e potrebbe consentire un più facile accesso al concetto di grammatica con una certa familiarità dovuta al riconoscimento del varie parole chiave e simili.

Enjoy!

    
risposta data 28.07.2011 - 14:50
fonte
2

Lo chiamano "sintassi interna" per contrastarlo con la sintassi degli esempi precedenti, che sono scritti in una sintassi di punto e virgola.

Vedi il primo paragrafo della sezione 4:

We start by describing the syntax and object model of a core language, which is intended to be simpler than Plaid source code yet be capable of representing all of the major semantic elements of Plaid.

È tipico nella ricerca di linguaggi di programmazione parlare di un linguaggio reale in termini di un modello linguistico di base. Il linguaggio reale è spesso prolisso e ha molte funzioni necessarie per portare a termine il lavoro che non hanno nulla a che fare con il punto specifico del documento. Dato che la maggior parte delle lingue sono sviluppate come estensioni di linguaggi esistenti, potrebbe aver ereditato la sua complessità sintattica e / o semantica dal linguaggio su cui è basata. Il linguaggio di base, al contrario, è progettato per essere molto semplice e lineare, per avere solo le caratteristiche sufficienti per illustrare il punto della carta. Ad esempio, nel documento di MacQueen sul sistema di moduli ML, egli modella ML con un calcolo lambda tipicamente chiamato SOL. ML ha I / O, eccezioni e tutti i tipi di altre funzionalità; SOL non lo fa, perché non sono necessari per spiegare come funziona il sistema del modulo.

    
risposta data 28.07.2011 - 21:01
fonte

Leggi altre domande sui tag