Ho bisogno di aiuto per definire una sintassi della shell

2

Sto cercando di capire di più sulle shell. Sto cercando di implementarne uno e voglio dare un'occhiata a ciò che è stato fatto in passato.

In una shell normale, hai caratteristiche come alias e percorsi relativi e forti convenzioni sintattiche, come --flag e così via. La IPython comunità ha aggiunto un sacco di funzioni interessanti alle sue shell con solo un minimo di nuova sintassi.

Ci sono altri progetti che dimostrano caratteristiche innovative o un nuovo uso della sintassi, che potrebbe essere utile quando si progetta un linguaggio shell?

Come esempi, le risposte fornite di seguito, su Boo e su Forth e Rebol , sono perfetti.

    
posta Carl Smith 15.03.2013 - 19:42
fonte

2 risposte

6

Boo è un linguaggio utilizzato sia come linguaggio di scripting che come piattaforma per la creazione lingue specifiche del dominio . Il suo manifesto descrive il motivo per cui l'autore lo ha creato; Boo ha:

  1. Una sintassi simile al polso e simile a Python
  2. Zucchero sintattico per schemi di programmazione comuni
  3. Nessuna dichiarazione variabile; le assegnazioni creano automaticamente variabili a livello locale
  4. Tipo di inferenza
  5. Digita casting
  6. Classi facoltative
  7. Funzioni di prima classe
  8. Iteratori (chiamati Generatori in Boo), con esecuzione lenta
  9. Duck typing
  10. Accesso alla pipeline del compilatore

Boo è una lingua .NET Framework . Funziona su Mono e quindi è multipiattaforma.

Boo è estensibile, consentendo di creare i propri costrutti sintattici. C'è persino un libro chiamato DSL in Boo: lingue specifiche del dominio in .NET .

Boo può essere utilizzato come piattaforma / motore per lo scripting .

Esiste anche Lua , un linguaggio di scripting crossbreadable, estensibile, estensibile con caratteristiche di performance favorevoli . La Wikimedia Foundation ha ha iniziato a offrire Lua come alternativa al loro sistema di template .

    
risposta data 17.03.2013 - 02:41
fonte
5

Hai considerato una sintassi del linguaggio estremamente semplice, come FORTH o REBOL? Questi sono linguaggi estremamente facili da comprendere e le grammatiche sono molto semplici da implementare.

In questi linguaggi, la funzionalità è descritta in termini di parole, che sono definite in termini di parole più semplici, rendendo incredibilmente semplice costruire astrazioni potenti, senza la complessità di comprendere classi, tipi o persino funzioni.

FORTH è così semplice che un compilatore completo può essere scritto in poche centinaia di righe di codice. Una revisione del libro di Crenshaw lo dimostra. ( Esempi di implementazioni sono comuni.) REBOL è allo stesso modo semplice, e mentre è stato aperto solo di recente e non ha Nonostante sia stato riorganizzato per l'incorporamento, il parser del linguaggio di base pesa circa 1.000 righe di codice. Dall'altro lato, entrambi sono facili da imparare e da comprendere, poiché ci sono solo alcuni concetti da capire.

Entrambe le lingue sono adatte all'implementazione come linguaggio di shell, in quanto l'ambiente host può definire qualsiasi parola sia necessaria per le operazioni comuni. Da lì, gli utenti possono fare letteralmente tutto ciò che possono immaginare.

    
risposta data 17.03.2013 - 08:28
fonte

Leggi altre domande sui tag