come funziona void

MauroTec:
Ora non ricordo l'ordine dei dati messi nello stack, ma anche l'indirizzo di ritorno deve stare nello stack, diversamente la funzione non saprebbe l'indirizzo da eseguire al termine della funzione stessa.

Come primo dato nello stack, quindi quello che si trova "sotto" a tutti quelli che poi saranno salvati dalla funzione stessa, c'è l'indirizzo dell'istruzione successiva a quella del salto. Una volta che la CPU trova l'istruzione RET, automaticamente preleva dallo stack il suddetto indirizzo, lo mette nel PR e poi prosegue ad eseguire il codice da quel punto.

MauroTec:
...chissà perché le funzioni C mi sembrano molto più naturali rispetto a quelle del GWBasic.

Perchè il GWBasic è una porcheria, il Basic già sul PDP11 era meglio di quel dialetto schifoso della M$. $)
Per fortuna poi in Visual Studio han fatto un dialetto Basic un pò più serio e strutturato. :smiley:

P.S. l'avete visto lo SmallBasic della MS per insegnare ai bambini? E' carino, ricorda un pò il GWBasic.
http://smallbasic.com/

Il GWBASIC, all'epoca, non era un bruttissimo BASIC. Era leeeento, ma nel complesso semplificava tante cose, come la gesione del suono e della grafica. Poi era molto organizzato per l'accesso ai file.

Aveva le pecche tipiche dei BASIC, insomma. Certo, se lo paragoni a linguaggi tipo il Pascal, era osceno. Ma devi pensare che il BASIC era nato per insegnare la programmazione anche ai principianti: "Beginner's All-purpose Symbolic Instruction Code"

Sara' per quello che persino un "coccio" come il sottoscritto era riuscito ad impararlo usando solo gli help ed il manuale :stuck_out_tongue:

E' vero, linguaggi come il C e seguenti sono piu evoluti e permettono molto di piu in termini di funzionalita', ma non sono altrettanto "facili" da capire a livello intuitivo ... poi certo dipende da quanto uno lo usa, se ci stai tutto il giorno, e' piu semplice alla fine che ti rimanga in mente di piu, se ti capita di usarlo una volta al mese, un po meno :stuck_out_tongue: XD

Anche il Quick Basic era carino, c'era una versione leggera nel MS-DOS e poi la versione per sviluppare, ho fatto tantissime cose con il QB45.
Pochi giorni fa ho installato il QB6... creato da sviluppatori indipendenti, riprende il QB45.

@paulus1969
Si tratta di programma per android o anche per GNU/Linux?

No sai magari un link per dargli uno sguardo di strisciooo, please.

@Etem
Si può dire benissimo il contrario. Cioè, il liguaggio Basic attuale e quello del GWBasic sono più evoluti rispetto al C.
Il è un linguaggio nudo e crudo molto vicino all'hardware, dove tutta le responsabilità è caricata sul programmatore che deve curare tutto nel dettaglio. Il basic come linguaggio interpretato potrebbe permettersi certi lussi che il C o C++ non possono permettersi.

Il C/C++ è difficile perché per mantenere la potenziale efficienza, quasi tutto viene lasciato decidere al programmatore, che si trova con a che fare con una flessibilità che può essere giudicata eccessiva fino al momento in cui hai la necessità di modificare il comportamento di default.

In sostanza, la flessibilità introduce complessità e la semplificazione introduce rigidezza.

Ciao.

MauroTec:
Il C/C++ è difficile perché per mantenere la potenziale efficienza, quasi tutto viene lasciato decidere al programmatore, che si trova con a che fare con una flessibilità che può essere giudicata eccessiva fino al momento in cui hai la necessità di modificare il comportamento di default.
In sostanza, la flessibilità introduce complessità e la semplificazione introduce rigidezza.

Quotone. Mi capitò anni fà di essere mandato a sostituire un insegnante ad un corso di C presso un cliente che faceva rilevazioni meteologiche e relativi grafici. I corsisti si lamentavano perchè lavoravano in Basic e dalla sede principale gli avevano detto che il C era un linguaggio potentissimo, meglio del Basic. L'insegnante precedente non sapeva che dire. Al che gli feci telefonare alla sede principale e scoprimmo che quei furboni avevano comprato delle librerie in C che facevano pure la birra e che senza di quelle i lori programmi di grafica (poi dei grafici belli ma mica chissà che) non facevano una cippa di niente. Al che gli presentai il C per quel che è, come detto da @Mauro. Un linguaggio a basso livello, potente perchè permette al programmatore di avere il controllo su tutto. Un linguaggio che permette di sviluppare S.O. o anche altri linguaggi.
Cosa che in Basic o Pascal non potresti fare.

nid69ita:
Cosa che in Basic o Pascal non potresti fare.

... e questa dove l'avresti letta ??? :astonished: :astonished: :astonished:

Ma ... l'hai mai usato un vero compilatore Pascal ??? ]:smiley: ]:smiley: ]:smiley:

Guglielmo

P.S. : E ... Turbo Basic della Borland ai bei tempi ??? ]:smiley: ]:smiley: ]:smiley:

nid69ita:
Un linguaggio a basso livello...

Il C è un linguaggio ad alto livello. Qualcuno lo definisce a medio livello.
Comunque un linguaggio a basso livello è l'Assembly.

PaoloP:

nid69ita:
Un linguaggio a basso livello...

Il C è un linguaggio ad alto livello. Qualcuno lo definisce a medio livello.
Comunque un linguaggio a basso livello è l'Assembly.

Questione di termini. Per me (ovvio, opinione personale) il C è a basso livello o medio, assembler a bassissimo (quasi livello macchina). Questo per differenziare nella mia visione Asm, C e gli altri linguaggi.

@Guglielmo, bellissimo il Turbo Pascal. L'ho adorato.
Non mi risultano S.O. scritti in Pascal. Ne sai uno ? :fearful:

@nid : che una cosa non sia stata fatta non significa, come tu affermavi, che non possa essere fatta ...

Premesso questo ... dai un'occhiata QUI ]:smiley:

Oltre a Turbo Pascal, che era ottimo, t'assicuro che anche Turbo Basic generava un codice ben ottimizzato, compatto e veloce !

Oggi giorno, PowerBasic è in grado di generare puro codice macchina (senza libreria di RunTime) estremamente ottimizzato e ... si riesce a scriverci veramente di tutto !

Guglielmo

Da quel che ho letto perciò il primo Mac OS era in Pascal mentre ora Mac OS X è in Objective C, giusto ?

gpb01:
P.S. : E ... Turbo Basic della Borland ai bei tempi ??? ]:smiley: ]:smiley: ]:smiley:

E' il primo basic "serio" che avevo provato su un PC ... cioe', il primo primo (su PC) era il "rombasic" dei vecchi IBM, ma quello meglio lasciarlo perdere (ancora mi ricordo il messaggio "No system disk - Starting with ROM-Basic" in tremolanti lettere verdine sugli M24 :stuck_out_tongue: XD) ... ed il primo primo primo (in assoluto) era il basic dell'Atari720 :stuck_out_tongue:

nid69ita:
Da quel che ho letto perciò il primo Mac OS era in Pascal mentre ora Mac OS X è in Objective C, giusto ?

... probabilmente ma ...non solo. Svariate parte a basso livello (driver e cose simili) saranno ancora scritte in assembler :wink:

Guglielmo

MauroTec:
@paulus1969
Si tratta di programma per android o anche per GNU/Linux?

No sai magari un link per dargli uno sguardo di strisciooo, please.

Eccolo qui
http://www.qb64.net/
Windows, Linux, Mac, Android

nid69ita:
Questione di termini. Per me (ovvio, opinione personale) il C è a basso livello o medio, assembler a bassissimo (quasi livello macchina). Questo per differenziare nella mia visione Asm, C e gli altri linguaggi.

Concordo.

nid69ita:
@Guglielmo, bellissimo il Turbo Pascal. L'ho adorato.

Alle superiori studiai il Turbo Pascal 3.0 della Borland. A casa ho ancora il libro di testo :smiley:

leo72:

nid69ita:
@Guglielmo, bellissimo il Turbo Pascal. L'ho adorato.

Alle superiori studiai il Turbo Pascal 3.0 della Borland. A casa ho ancora il libro di testo :smiley:

Siamo andati OT, anzi siamo in modalità REMEMBER. Ehh, la vecchiaia :grin:

Sì siamo OT ... :wink:

PS:
non è vecchiaia, è esperienza! :wink: