|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 332
|
come si crea un linguaggio di programmazione
Molto spesso mi chiedo come si è passati dai primi computer che erano solo delle lampadine che si accendevano e spegnevano fino ad oggi.se erano solo lampadine i primi computer come hanno scritto il software?e come si scrive un linguaggio di programmazione?ad esempio il C in che linguaggio è scritto?
|
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
Quote:
|
|
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Sembrera' strano ma C e' scritto in C. A grandi linee, si supponga di creare un nuovo linguaggio il D:
1) Il primo passo e' di creare un interprete del linguaggio D scritto in assembly o in un altro linguaggio preesistente. 2) Il secondo passo sara' quello di scrivere il compilatore D in linguaggio D (sorgente). 3) Il terzo passo sara' quello di eseguire il compilatore D con l'interprete appena creato nel punto 1). 4) Il quarto passo sara' quello di compilare il compilatore D, con il compilatore D interpretato dall'interprete del punto 1). 5) L'eseguibile ottenuto dal punto 4) e' il compilatore D scritto in D (autocompilazione). |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 332
|
scusa, ma non ho capito molto bene!
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Prima scrivi il compilatore/interprete in un altro linguaggio, poi lo riscrivi nel linguaggio stesso. Nel caso del C, se non ricordo male, la cosa e' stata fatta a passi (prima un compilatore per un sottoinsieme del linguaggio, per poi aggiungere man mano features).
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 332
|
e per scrivere un compilatore/interprete in un altro linguagio cosa si dovrebbe fare?scrivere la sintassi del nuovo linguaggio che si vuole creare o altro?
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 332
|
up
|
|
|
|
|
|
#8 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2683
|
oddio non è così banale la cosa...ti dovresti leggere bene qualcosa sull'architettura degli elaboratori...
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 332
|
qualche link?
|
|
|
|
|
|
#10 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2683
|
mmmm purtroppo il mio professore (cioè purtroppo per te ma bene per me perchè era Dio) odiava libri, dispense...parlava spiegava...e gli appunti erano la bibbia...mmm mi informo in facoltà se qualcuno conosce qualche link fatto benino e te lo passo
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Comincia da qua:
http://en.wikipedia.org/wiki/Formal_grammar
__________________
|Java Base| |
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Jan 2006
Città: Prov.Cagliari
Messaggi: 1583
|
Quote:
__________________
MB: ASUS Prime x570-P - CPU: AMD Ryzen 9 3900x with Arctic Liquid Freezer II 240 - Memorie: G.Skill Ripjaws DDR4 2x16GB 3200 - HDs: Samsung 970 EVO plus and Crucial P2 1TB - Ali: Seasonic Focus GX-650 - Video: AMD Asus GTX770 Direct CU II - Concluso Positivamente con : M@x27, mirco2034, max x2, relativo, Mighty Max e tanti altri |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 332
|
ok capisco.
@lovaz:non hai un link in italiano? |
|
|
|
|
|
#14 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() e molto probabilmente anche il CL di Microsoft |
|
|
|
|
|
|
#15 | ||
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() il fatto della corrispondenza 1:1 mi sembra una generalizzazione veramente eccessiva, mi sa che il vostro prof di assembly x86 non ne sapeva più o meno all'incirca un cazz scaricati se vuoi i manuali gratuiti (dal sito della Intel, in PDF) dei processori x86, e vedi giustappunto la codifica delle varie versioni di MOV: certe hanno proprio opcodes diversi, non è possibile dire che la corrispondenza sia 1:1. Quote:
leggi la spiegazione di repne scasb, è chiarissima; e fai caso anche al fatto che il GCC è scritto in C Ultima modifica di 71104 : 14-02-2007 alle 18:12. |
||
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
Mi sapete dire perchè si è soliti scrivere un compilatore con lo stesso linguaggio che andrà a compilare?
__________________
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
http://it.wikipedia.org/wiki/Grammatica_formale
http://it.wikipedia.org/wiki/Linguag...programmazione http://it.wikipedia.org/wiki/Compilatore eccetera...
__________________
|Java Base| |
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Quote:
Motivi prestazionali, penso...
__________________
|Java Base| |
|
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Inoltre tipicamente se si progetta un nuovo linguaggio si vuole ottenere un linguaggio "migliore" (dal punto di vista dell'autore) dei precedenti, per cui se chi lo progetta e' anche chi ne scrive il compilatore, tendera' a preferirlo in quanto considerato piu' adatto. La cosa non e' una regola ovviamente. Ci sono persone bravissime e fluenti in piu' linguaggi, e non e' detto che un linguaggio vada bene anche per scrivere compilatori, soprattutto i linguaggi di scripting per settori abbastanza particolari.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 332
|
scusate, ma se io vorrei inventare il linguaggio G come faccio a scrivere il compilatore in G se nemmeno l'ho inventato?!
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:45.











|









