|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
[Follia]New language
Se, moolto impoteticamente parlando, volessi farmi un mio linguaggio con un mio compilatore.
Partendo da questo se... una sintassi come quella sotto vi piacerebbe? Codice:
#program Test ;one program for file #import <core> ; contrapposted unit( +/- namespace ) #using core.io ; static declaration #declare i as 9 c as 'c' #declare_end ; dynamic declaration #dynamic_declare all ; can assume all type of value #dynamic_declare_end ; main program... must be in ALL programm as entry point #main_program init; ; must be in ALL programm: set program opt and other things print(i) print(c) #main_program_end ; name, arg....this is a void func #function print var stampa('Valore == ', var, '\n') #function_end ; name, arg....this is a return func #function print_return var stampa('Valore == ', var, '\n') ; both Return or <function name> is a mothod to return to caller Return := var print_return := var #function_end print nn era print_return poiche, nel copia/incolla, nn l'avevo sostituito
__________________
Gnu/Linux User ![]() Ultima modifica di Luc@s : 03-09-2004 alle 22:37. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
no, ci capisco meno che in un programma perl di larry wall...
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2003
Città: Padova
Messaggi: 2929
|
Mi sa che quei libri della intel fanno venire strane idee
![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
|
Re: [Follia]New language
Quote:
A dire la verità, non so se ti ricordi, un pò di tempo fa anche a me venne l'insana idea di fare un nuovo compilatore con un linguaggio "simbolico" ![]() Personalmente, ti incoraggio ![]() ![]()
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n; Utilizzando atomi trivalenti drogheremo il silicio di tipo p; Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
Re: Re: [Follia]New language
Quote:
Come va il tuo lavoro??? Ma sto getto di schema come ti sembra? P.s: in realta il mio sogno è ................ leggi la firma :P
__________________
Gnu/Linux User ![]() |
|
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Feb 2004
Messaggi: 16
|
Quale programmatore vero nn ha mai sognato cose di questo tipo?
![]()
__________________
Athlon XP 2600+ / Asus A7n8X-X / 512Mb DDR333 / GEFORCE FX 5900XT!!! / Maxtor 120GB / Inspire 2.1 P380 |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Aug 2003
Città: addio fabriANO... mò sto a Roma ahò!!
Messaggi: 579
|
Re: Re: Re: [Follia]New language
Quote:
beh allora ecco un altro matto ![]() ![]() Argosoft OS uscirà entro poco tempo per scalzare Longhorn!!! ![]()
__________________
Tavshan Pasha Bazar: Oggetti etnici per il relax! |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
Quote:
tra 5 anni avrai un nuovo dio.............spero ![]()
__________________
Gnu/Linux User ![]() |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2003
Città: Padova
Messaggi: 2929
|
Beh con l'impegno nulla è impossibile, nemmeno un OS.
Quante volte ci è capitato di dover fare un programma, apparentemente difficile, e poi, dopo smadonnamenti vari ![]() ![]() Certo, un OS ha bisogno del completo interfacciamento alla macchina e gestire millemila cose, ma un pò alla volta si riesce! Scusate stavo delirando ![]() |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
uhm non è che sia molto carina come sintassi troppi '#' poi i commenti con ';'... preferirei qualcosa di piu simile a C# con i generics ma senza l'obbligo di dover scrivere per forza programmi in oop.
![]() ciao ![]() |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
|
Re: [Follia]New language
Quote:
![]() ; both Return or <function name> is a mothod to return to caller ....quindi Return := var e print_return := var e non print := var ![]() Non voglio demoralizzarti ma è un'opera titanica ke presuppone la conoscenza di una marea di cose x esempio la stesura di un parser efficente, un briciolo di librerie di supporto standard (o wrapper alle API del S.O.) o del linguaggio macchina x generare direttamente il binario (o di codice asm se scrivi semplicemente un preprocessore) In bocca al lupo ![]()
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Io un preprocessore l'ho fatto...e non è complicatissimo... Mi sono anche inventato la traduzione delle funzioni con il passaggio dei parametri...
La cosa più difficile è il parser (qui in teoria si potrebbe ricorrere ai vari parser generici)...e da questo, una volta ottenuto l'albero di derivazione...basta visitare l'albero e tutto avviene meccanicamente... Ultima modifica di cionci : 03-09-2004 alle 22:38. |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
mi maileresti, se nn ti disturba, il tuo lavoro?
Giusto per vedere quanto è grosso e come è fatto. Si impara sempre molto dal code altrui ![]()
__________________
Gnu/Linux User ![]() |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Purtroppo è andato perso...probabilmente il mio collega (l'abbiamo fatto insieme) lo dovrebbe sempre avere, ma nonostante lo abbia chiesto molte volte non me lo ha mai inviato...
Comunque era davvero brutto da vedere...codice C scritto malissimo... Compilato con il Turbo C...e generava un sorgente ASM per il TASM... Nota che si parla di 6 anni fa... |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
sei il mio mito personale!
Quanto ci avevate impiegato?
__________________
Gnu/Linux User ![]() |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
A compilava un subset del C...
Le strutture iterative più semplici if, for, do while... Supportava le funzioni... Ed aveva due funzioni built-in per l'I/O... |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Si tratta solo di organizzare il parser in modo "maneggevole"... In modo che sia semplice adattare una struttura iniziale a tutte le varie operazioni... Dopo tutto il mio parser non era altro che una grande serie di switch e if ![]() Ovviamente c'è tutta una teoria sui parser...ma noi ne eravamo completamente all'oscuro... |
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Apr 2003
Città: Padova
Messaggi: 2929
|
Dicesi di parser?
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
Quote:
__________________
Gnu/Linux User ![]() |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
E' quella parte di un compilatore che si occupa di prendere il sorgente e metterlo all'interno di una struttura dati...per poterci poi lavorare in maniera più agevole...
Ad esempio: void f() { int a, b = 5, c = 6, d; a = b + c; d = a + b; } Il parser genererà una cosa del genere: Codice:
funzione f (ci sarà associata un descrizione dei parametri e del tipo di ritorno) | -- Blocco (espressioni racchiuse all'interno delle {}) | -- Dichiarazione di a | -- Dichiarazione di b, inizializzata a 5 | -- Dichiarazione di c, inizializzata a 6 | -- Dichiarazione di d | -- = | | | -- a | | | -- + | | | -- b | | | -- c -- = | -- d | -- + | -- a | -- b |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:33.