Devo fornire un riferimento al linguaggio oltre a una specifica formale per il linguaggio di programmazione che sto progettando?

2

Sto progettando un linguaggio di programmazione e vorrei fornire una documentazione completa per questo.

Finora, ho programmato di scrivere i seguenti documenti:

  1. Uno schema di progettazione iniziale, principalmente per ricordare il design e le modifiche proposte, nonché un aiuto per costruire tutti gli altri documenti quando la fase di progettazione è stata completata.

  2. Una specifica formale della sintassi e della semantica del linguaggio, sia in inglese che in un'appropriata notazione matematica formale.

  3. Un tutorial.

Ho trovato che alcune lingue hanno riferimenti e ho trovato su Wikipedia che riferimenti di lingua e specifiche della lingua non sono esattamente le stesse, i riferimenti sono solitamente meno dettagliati a causa del fatto che sono indirizzati agli utenti della lingua piuttosto che agli implementatori di esso.

Tuttavia, mi piacerebbe sapere ...

  1. Quali parti delle specifiche di una lingua vengono di solito omesse in un riferimento al linguaggio?

  2. È davvero utile fornire un riferimento al linguaggio quando alla fine un buon programmatore dovrebbe consultare le specifiche della lingua come fonte definitiva di informazioni?

  3. Nel caso in cui la risposta alla domanda precedente sia "Sì" ... Vale veramente il rischio di introdurre contraddizioni tra le specifiche del linguaggio e il riferimento al linguaggio?

posta pyon 09.05.2012 - 10:42
fonte

1 risposta

4

Personalmente, suggerirei di non fare un tutorial e invece di fare un riferimento con molti esempi. La specifica C # ha questo genere di cose all'inizio. Fornisce abbastanza carne per ottenere l'idea senza dover tradurre dalle parti specifiche asciutte. Fornisce inoltre il tuo meccanismo per descrivere come la lingua differisce da C ++, che dovrebbe aiutare il tuo pubblico di destinazione. Per le tue sotto-domande specifiche:

  1. Gran parte della notazione matematica, molta della gestione eccezionale dei casi (come l'ordine dettagliato degli inizializzatori per esempio), molti dei comportamenti comuni (come l'ordine matematico delle operazioni), il BNF, e probabilmente più sto trascurando.

  2. Direi di sì per due motivi. In primo luogo, ci sono molti programmatori non buoni al mondo. La tua lingua non otterrà molta trazione se solo le persone che sono in grado di leggere testi di progettazione linguistica di programmazione possono usarla. In secondo luogo, le buone "fonti definitive" non sono necessariamente buone fonti di apprendimento.

  3. Dovrebbe essere chiaro che la specifica è la definizione definitiva della lingua. Gli errori possono essere corretti, e se hai problemi a scrivere una semplice documentazione per la lingua, sembra un sintomo di un problema più grande.

risposta data 09.05.2012 - 14:07
fonte

Leggi altre domande sui tag