Domanda sulla creazione di una lingua di scripting

12

Ad esempio, volevo pagare qualcuno per creare un linguaggio di programmazione o un linguaggio di scripting per me. Che tipo di documento avrebbero bisogno, al fine di comprendere appieno quello che è esattamente quello che voglio.

Voglio dire, ci sono documenti standard che descrivono il nuovo linguaggio di programmazione / scripting in questione?

    
posta J.T.S. 16.10.2010 - 20:57
fonte

5 risposte

16

Quello che devi scrivere è una specifica della lingua .

Dovrebbe contenere una descrizione della grammatica della lingua (preferibilmente in Extended Backus-Naur-Form ) e la sua semantica.

Per l'ultima parte potresti scrivere una descrizione con parole tue (ma attenzione per essere precisi) o una semantica formale .

    
risposta data 16.10.2010 - 22:20
fonte
13

Avrai bisogno di quanto segue:

  • Un motivo per la creazione di una nuova lingua
  • A Philosophy
  • Una definizione semantica
  • Una descrizione lessicale dei token
  • Una definizione di analisi della sintassi

In che modo la tua lingua sarà diversa? Qual è la sua missione? È funzionale? È orientato agli oggetti? È un meta-linguaggio? Quali sono le sue caratteristiche uniche? Cosa darà al mondo che non esiste (o esiste in modo brutto)? Come vuoi cambiare le cose? È compilato o interpretato? Un DSL o linguaggio generico? Questa è la tua filosofia e detta molto sulla progettazione della tua lingua.

Quindi, lavorate sul grattamento della sintassi e della semantica su carta. Questa sarà la tua definizione semantica ... scrivere codice falso è un ottimo modo per sviluppare i tuoi pensieri. Leggi "The C Programming Language" per un eccellente esempio di come è fatto. Gioca con esso.

Dovrai quindi definire i token e la sintassi in qualche modo. I programmi li elaborano quindi in automi in grado di leggere le stringhe ed elaborare la sintassi. Yacc e Bison usano le espressioni regolari e una sintassi in stile BNF rispettivamente per l'analisi lessicale e di sintassi. Ci sono anche strumenti simili a Yacc e Bison in altre lingue.

Avrai anche bisogno di una messa a terra nella teoria del linguaggio / compilatori per sapere cosa NON fare. Gli esempi includono grammatiche ambigue, generazione di AST e problemi di manipolazione e in generale come rendere la vita semplice per te stesso. Conoscere la teoria è molto importante. Prenderò in considerazione l'idea di ottenere quanto segue per iniziare:

Compilatori: principi, tecniche e strumenti (libro del drago)
Implementazione del compilatore moderno in C o Implementazione del compilatore moderno in Java

    
risposta data 17.10.2010 - 06:22
fonte
8

Il 99,9% delle volte che si crea una nuova lingua è completamente inutile. Il ritorno sull'investimento sarebbe molto piccolo, e avresti perso tempo.

Molto probabilmente puoi usare Javascript come linguaggio di scripting suscettibile, e ci sono già parser disponibili per la maggior parte delle lingue. Puoi anche usare altri linguaggi di scripting che ti piacciono se riesci a trovare un parser adatto a loro. Implementare quelli nel tuo programma richiederebbe molto meno lavoro e un rendimento maggiore. Le persone non devono imparare un'altra lingua, devono solo imparare la tua API. È una soluzione molto migliore.

Creare una nuova lingua è quasi sempre pessimo.

    
risposta data 17.10.2010 - 01:37
fonte
3

Puoi descrivere la grammatica della tua lingua in BNF .

Ad esempio, questa è la grammatica di Python .

    
risposta data 16.10.2010 - 21:55
fonte
0

Se stai usando .NET, ecco qualcosa che mi è capitato in qualche momento indietro. Ho solo dato un'occhiata curiosa, ma forse sarebbe stato utile per te: ironia .

Irony is a development kit for implementing languages on .NET platform.

    
risposta data 16.10.2010 - 22:28
fonte

Leggi altre domande sui tag