|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2009
Messaggi: 1234
|
[Creare un di programmazione]Funzioni,Metodi...
Prendiamo ad esempio il metodo in java println oppure la classe system, o ad esempio if e int che sono dati primitivi. Ecco, come vengono creati questi dati? Che linguaggio usano i programmatori per creare questi dati primitivi, o ad esempio per creare il metodo println? Vorrei levarmi questo dubbio. Va bene utilizzare le classi,le collection i metodi per metterli insieme e formare un programma ma da dove parte tutto. Come faccio a dire alla macchina che if sta per se nella lingua umana, come lo creo quell'if nel cervello della macchina?
Edit: Nel titolo manca la parola linguaggio, se qualcuno riesce a modificarla per correttezza, grazie Ultima modifica di hollywoodundead : 17-08-2013 alle 20:13. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Oct 2010
Città: Savona
Messaggi: 194
|
Attenzione a confondere le funzioni della libreria standard (o meno) che fa parte integrante di un determinato linguaggio (vedi printf in C) con gli elementi della grammatica del linguaggio stesso (vedi if nella dichiarazione di una struttura condizionata del C).
La prima è una funzione (spesso creata nello stesso linguaggio che la utilizza) che viene eseguita di solito portando a fare un salto dell'esecuzione del programma in un modulo di libreria .Mentre l'altro è un elemento che il compilatore /interprete trasforma direttamente in istruzioni in linguaggio macchina /metalinguaggio per essere eseguito dalla macchina /macchina virtuale quando il tuo programma viene eseguito.
__________________
AMD Phenom II X6 3Ghz, MB Gigabyte 790xta-ud4 F4A, 4Gb Ram ddr3, HD Segate Barracuda 1T, SV ASUS GTX 560 Ti DirectCu II ,Monitor Philips 1920x1080 led 2 ms, Xbox360 Slim, Tablet Asus Transformer Pad TF300T, Gameboy Advance, Ipod Touch 16Gb |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jan 2009
Messaggi: 1234
|
Quote:
EDIT: L'unica soluzione che mi viene in mente è che i dati primitivi come l'if, l'int etc.. sia precaricari ad esempio per quanto riguarda il linguaggio java direttamente nella JVM (per precaricati intendo dire scritti direttamente al suo interno in linguaggio java) in moto tale che vengano interpretati in bytecode durante l'esecuzione della JVM, e cosi il programmatore non ha bisogno di scriverli nel programma. Vi torna? Ultima modifica di hollywoodundead : 17-08-2013 alle 21:05. |
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Oct 2010
Città: Savona
Messaggi: 194
|
Vedi tramite una grammatica è possibile creare un grafo che permette di tradurre i comandi del linguaggio tramite apposite tabelle in codice eseguibile.
A tal proposito, guarda la teoria dei compilatori e la teoria delle grammatiche non ambigue dei linguaggi di programmazione. Adesso come adesso non saprei che letture consigliare, io studiai l'argomento all'università molti anni fa. Lascio a chi è più informato di me ulteriori precisazioni.
__________________
AMD Phenom II X6 3Ghz, MB Gigabyte 790xta-ud4 F4A, 4Gb Ram ddr3, HD Segate Barracuda 1T, SV ASUS GTX 560 Ti DirectCu II ,Monitor Philips 1920x1080 led 2 ms, Xbox360 Slim, Tablet Asus Transformer Pad TF300T, Gameboy Advance, Ipod Touch 16Gb |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jan 2009
Messaggi: 1234
|
Quote:
|
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jan 2009
Messaggi: 1234
|
Quote:
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Ma tu a che anno sei e di quale corso e in quale città?
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12919
|
C'è un bel po' di confusione.
Ogni linguaggio (in generale) si basa su almeno due cose: 1) alfabeto (set di simboli ammessi nel linguaggio, ad esempio nel caso dei linguaggi di programmazione è il set di simboli ASCII) 2) grammatica (set di regole che consentono di generare "parole" o "frasi" del linguaggio) Generare una frase valida di un linguaggio e testare se una frase appartiene al linguaggio sono due cose diverse. Un parser di un compilatore si occupa tipicamente di verificare se il programma scritto dall'utente (frase del linguaggio) sia corretto dal punto di vista grammaticale. Ovvero: Codice:
int main(void)
{
return 0;
}
E questo? Codice:
main: return 0 Dopo che il parser ha validato il programma, si passa ad altri moduli del compilatore che hanno il compito di ottimizzare il codice e tradurre in assembly (o in bytecode nel caso dei linguaggi managed). Nota bene che almeno concettualmente ad ogni istruzione assembly corrisponde una istruzione macchina (in binario). Ultima modifica di WarDuck : 18-08-2013 alle 11:56. |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jan 2009
Messaggi: 1234
|
Torino, devo frequentare il primo anno. Il corso è informatica.
Quote:
|
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Dai un occhiata qui: http://it.wikipedia.org/wiki/Compilatore quello che cerchi tu nello specifico (ovvero quella parte della compilazione che da il significato a quello che hai scritto), se non erro, è l'Analisi Semantica...
Comunque sono tutte cse che apprenderai nei corsi all'università (io sto facendo l'università a Bologna): Linguaggi/Logica - Linguaggi di Programmazione - Architettura dei Calcolatori.
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Aug 2001
Messaggi: 9538
|
Quote:
|
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12919
|
Quote:
Esempio: Codice:
if (a < 47) ... else ... <IF, indirizzo di A, lessthan, 47, indirizzo prossima istruzione> E dopodiché c'è una semplice tabella di corrispondenza che dice come tradurre quel token in assembly. A sua volta l'assembly viene tradotto in linguaggio macchina, che altro non sono che sequenze di numeri tipo: <12, indirizzo di A, 3, 47, indirizzo prossima istruzione> (dove indirizzo di A e indirizzo prossima istruzione sono numeri) Ad ogni modo, l'argomento è lungo e in alcuni casi per nulla banale. Per avere un quadro chiaro di tutto dovresti aver fatto già i corsi di fondamenti, architetture e compilatori. http://en.wikipedia.org/wiki/Compiler |
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Jan 2009
Messaggi: 1234
|
Quote:
http://lazzarini.altervista.org/Terza/Grammatica.html http://www.hwupgrade.it/forum/showthread.php?t=1274080 Questo in particolare spiega bene quello che volevo capire, illustrando anche alcuni esempi concreti nella creazione di un parser: http://digilander.libero.it/capano/lezioni/LEZIONE6.htm Alla fine era come avevo immaginato,il significato di tutti questi tokens( adesso so come si chiamano Mone forse ricordo male, ma te non eri la persona che chiedeva com'era l'università di torino, che è venuto pure a vederla e alla fine era rimasto a bologna? |
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Jan 2009
Messaggi: 1234
|
Quote:
|
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Quote:
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
|
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Jan 2009
Messaggi: 1234
|
Quote:
|
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jan 2009
Messaggi: 1234
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:44.





















