2011-11-05 18 views
8

Prima di tutto, voglio un linguaggio di programmazione per creare interazioni tra il codice e il mio ambiente applicativo e questo è il mio obiettivo. Ho scritto qualcosa come Interpreters che conosce solo if, void e function, variabili con i loro ambiti e, naturalmente, invocare funzioni integrate che funzionano perfettamente. Ma ora sono bloccato su alcune parti e mi rendo conto che non posso continuare con una semplice analisi del testo e ci sono molte cose che non posso fare.Creare un linguaggio di programmazione con C#

Quindi, per quello, ho cercato su questo argomento e ho ottenuto Creating programming language using C#. Andava bene, ma ho due problemi con esso.

  1. Non riesco a capirlo.
  2. Genera codici di console ma voglio usarli in winapps.

Per breve, C'è qualcuno sa come posso fare nella mia lingua, senza passare corsi come lexer, riflessioni ...

Grazie.

+8

"_For breve, è c'è qualcuno sa come posso fare la mia lingua senza passare corsi come lexer, riflessioni ... _ "... umm, no. Avrai bisogno di imparare le basi per capire come creare il tuo linguaggio veramente unico. Per cosa ti serve questo? Ricorda, abbiamo il DLR, che ti permette di incorporare un linguaggio di scripting in un'app, sarebbe sufficiente per te? – driis

+5

È un compito di apprendimento? O stai davvero provando a ** fare ** qualcosa.Se quest'ultimo, ci sono molti linguaggi di scripting che puoi usare all'interno di C# - i "ferri" (ferro pitone, ferro rubino, ecc.), Boo, f #, motori JavaScript; probabilmente lua, ecc ... –

+0

Non è un compito di apprendimento e ho bisogno di questo per il mio motore !. Ho creato un editor di livello 2d e penso di voler interagire con i codici. DLR? hmm, penso di averlo visto ma non so mai come si chiama. Oh! DLR Ho dimenticato cosa fosse, sì, ma non ho mai provato a incorporare. Dovrei provarlo – MahanGM

risposta

2

Creare la propria lingua è possibile ma molto impegnativo. Non puoi farlo bene senza cose come i lexer.

La creazione della propria lingua impone anche ai clienti di apprendere un'altra lingua e non ci saranno codici di terze parti o librerie esistenti per questo linguaggio presunto.

Un'alternativa sarebbe quella di incorporare una lingua esistente ed esporre le funzionalità dell'applicazione attraverso quella. Python è una scelta molto comune per l'incorporamento, ma ci sono molte altre opzioni. Raccomando caldamente che, per questo compito, tu consideri di incorporare una lingua esistente piuttosto che inventare la tua.

+0

Perché è down down? –

+0

Sì, è vero. Grazie per la risposta. – MahanGM

4

Non sono sicuro di capire davvero la tua domanda.

È un'estensione del programma? Una raccolta di funzioni di libreria scritte in C#?

O una lingua completamente separata per la quale si sta scrivendo un interprete in C#? (che è quello che immagino)

Se è quest'ultimo, nei bei vecchi tempi ti avrei indicato a Lex/Yacc (GIYF).

Al momento, posso solo dire ANTLR. Controlla il Five minute introduction to ANTLR 3 e ANTLR v3 C# Code generator and Runtime library

Basta controllare le schermate del IDE in questa pagina

enter image description here

enter image description here

+0

Grazie. Sembra così bello! Ci proverò ora. – MahanGM

Problemi correlati