Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Cerco disperatamente di creare un linguaggio di programmazione.
Ecco i dettagli del linguaggio che ho in mente:
1. Linguaggio compilato;
2. Linguaggio complesso e più vario possibile;
3. Risultati garantiti.
Ho già un'idea sui codici e parole riservate.
I metalinguaggi sono ottimi, ma allora allegate al messaggio un tutorial pdf ed un editor di metalinguaggio se possibile.
Grazie in anticipo, ho grandi ambizioni, se diventerò famoso per i miei programmi chiunque in questo forum che mi abbia aiutato, avrà i miei prodotti gratuitamente.
La fai facile eh -.-
Devi cercarti un manuale, ce n'è uno famoso di dui non ricordo il nome, ma è il primo che trovi cercando language design (c'è un drago sulla copertina)
Dopo che hai studiato quello, c'è il seguito
Buon lavoro
per scrivere un *nuovo* linguaggio di programmazione bisogna sapere non bene, *benissimo*, il linguaggio che si andrà ad utilizzare.
inoltre serve moltissima teoria sui linguaggi di programmazione, tecniche di parsing, creazione di interpreti, metalinguaggi, e questo genere di cose che le puoi leggere sul dragon book, ma non basta.
per lavorare sui linguaggi di programmazione potresti studiare i sorgenti di qualche linguaggio sperimentale (p.e. il MFL scritto da manvbnet, i cui sorgenti sono disponibili su pierotofy oppure compilatori tipo GCC o il parser di Python per indicare noti progetti open source), modificare, studiare, ma *non puoi partire* con l'idea "oggi creo un linguaggio di programmazione".
per cominciare puoi generare parser a partire da grammatiche formali con ANTLR, ma devi sapere cos'è una grammatica formale e come fare in modo che non sia ambigua. enjoy.
PS: inoltre non capisco la necessità di creare un nuovo linguaggio di programmazione, se non per divertimento. se vuole essere una cosa seria...
Ultima modifica effettuata da delta il 02/09/2011 alle 21:24
allora se voi ti spiego un po io stò creando il mio di linguaggio ma il mio a delle doti particolari , tanto vale spiegarti il percorso base.
la prima cose da scegliere è cosa voi dare al tuo linguaggio velocità o portabilità , in caso avessi risposto con portabilità farai un interprete o un subcompilato che è un giusto mix invece se voi fare una cosa veloce devi creare un compiler .
Tutti ti diranno che è meglio usare un meta linguaggio , non dargli retta i meta linguaggi diventano vecchi e di conseguneza anche il tuo linguaggio diventerà vecchio , per creare un interprete banale , dal tuo interprete fai leggere una parola alla volta e la fai mettere in una variabile , dopo di che fai una prima if che dice che se quella variabile è uguale a una parola allora legge la seconda parole e la mette in un altra variabile e se la seconda fariabile è uguale a una determinata parola gli fai fare un altra cose guarda ti posto un codice.
Codice sorgente - presumibilmente C#
char*v[];
fgetc(fp,2,v);
if(v =="e"){//ti metto l' uguglianza classica ma in c usa lo strcmp
fgetc(fp,2,v);
if(v =="c"){
fgetc(fp,2,v);
if(v =="h"){
fgetc(fp,2,v);
if(v =="o"){
fgetc(fp,2,v);
if(v ==" "){
fgetc(fp,2,v);
while(strcmp(v,"\n")!= 0){
fgetc(fp,2,v);
printf("%s",v);
}
printf("/n");
}
}
}
}
}
comunque se non voui fare troppo lavoro unisciti al mobi (il mio linguaggio).
per il compilato devi prendere un compiler come gcc e usarlo per il tuo linguaggio .
scrivere in c tante funzioni come printf scanf fgetc ecc e metterle in un file.h
e quando compili il tuo linguaggio invece di includere stdio.h
includi il tuo file.h e il cioco è fatto e se voi poi ti crei un compilatore c , i codici esistono già ti allego qualche cosa di turbo pascal
allora se voi ti spiego un po io stò creando il mio di linguaggio ma il mio a delle doti particolari , tanto vale spiegarti il percorso base.
la prima cose da scegliere è cosa voi dare al tuo linguaggio velocità o portabilità , in caso avessi risposto con portabilità farai un interprete o un subcompilato che è un giusto mix invece se voi fare una cosa veloce devi creare un compiler .
Tutti ti diranno che è meglio usare un meta linguaggio , non dargli retta i meta linguaggi diventano vecchi e di conseguneza anche il tuo linguaggio diventerà vecchio , per creare un interprete banale , dal tuo interprete fai leggere una parola alla volta e la fai mettere in una variabile , dopo di che fai una prima if che dice che se quella variabile è uguale a una parola allora legge la seconda parole e la mette in un altra variabile e se la seconda fariabile è uguale a una determinata parola gli fai fare un altra cose guarda ti posto un codice.
Codice sorgente - presumibilmente C#
char*v[];
fgetc(fp,2,v);
if(v =="e"){//ti metto l' uguglianza classica ma in c usa lo strcmp
fgetc(fp,2,v);
if(v =="c"){
fgetc(fp,2,v);
if(v =="h"){
fgetc(fp,2,v);
if(v =="o"){
fgetc(fp,2,v);
if(v ==" "){
fgetc(fp,2,v);
while(strcmp(v,"\n")!= 0){
fgetc(fp,2,v);
printf("%s",v);
}
printf("/n");
}
}
}
}
}
comunque se non voui fare troppo lavoro unisciti al mobi (il mio linguaggio).
per il compilato devi prendere un compiler come gcc e usarlo per il tuo linguaggio .
scrivere in c tante funzioni come printf scanf fgetc ecc e metterle in un file.h
e quando compili il tuo linguaggio invece di includere stdio.h
includi il tuo file.h e il cioco è fatto e se voi poi ti crei un compilatore c , i codici esistono già ti allego qualche cosa di turbo pascal
Dimmi che scherzi.
Testo quotato
Postato originariamente da Loryea:
Ecco i dettagli del linguaggio che ho in mente:
1. Linguaggio compilato;
2. Linguaggio complesso e più vario possibile;
3. Risultati garantiti.
allora se voi ti spiego un po io stò creando il mio di linguaggio ma il mio a delle doti particolari , tanto vale spiegarti il percorso base.
la prima cose da scegliere è cosa voi dare al tuo linguaggio velocità o portabilità , in caso avessi risposto con portabilità farai un interprete o un subcompilato che è un giusto mix invece se voi fare una cosa veloce devi creare un compiler .
Tutti ti diranno che è meglio usare un meta linguaggio , non dargli retta i meta linguaggi diventano vecchi e di conseguneza anche il tuo linguaggio diventerà vecchio , per creare un interprete banale , dal tuo interprete fai leggere una parola alla volta e la fai mettere in una variabile , dopo di che fai una prima if che dice che se quella variabile è uguale a una parola allora legge la seconda parole e la mette in un altra variabile e se la seconda fariabile è uguale a una determinata parola gli fai fare un altra cose guarda ti posto un codice.
Codice sorgente - presumibilmente C#
char*v[];
fgetc(fp,2,v);
if(v =="e"){//ti metto l' uguglianza classica ma in c usa lo strcmp
fgetc(fp,2,v);
if(v =="c"){
fgetc(fp,2,v);
if(v =="h"){
fgetc(fp,2,v);
if(v =="o"){
fgetc(fp,2,v);
if(v ==" "){
fgetc(fp,2,v);
while(strcmp(v,"\n")!= 0){
fgetc(fp,2,v);
printf("%s",v);
}
printf("/n");
}
}
}
}
}
comunque se non voui fare troppo lavoro unisciti al mobi (il mio linguaggio).
per il compilato devi prendere un compiler come gcc e usarlo per il tuo linguaggio .
scrivere in c tante funzioni come printf scanf fgetc ecc e metterle in un file.h
e quando compili il tuo linguaggio invece di includere stdio.h
includi il tuo file.h e il cioco è fatto e se voi poi ti crei un compilatore c , i codici esistono già ti allego qualche cosa di turbo pascal
Dimmi che scherzi.
Testo quotato
Postato originariamente da Loryea:
Ecco i dettagli del linguaggio che ho in mente:
1. Linguaggio compilato;
2. Linguaggio complesso e più vario possibile;
3. Risultati garantiti.
Idee molto chiare su come svilupparlo
Non si tratta di quello il mio progetto, ho un progetto su Word molto preciso.
Mi aspetto che un metalinguaggio possa essere tanto flessibile da rispettare quelle tre semplici regolette e dare risultati molto flessibili ma sempre dentro quelle tre regolette.