Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-08-2013, 19:28   #1
hollywoodundead
Senior Member
 
L'Avatar di hollywoodundead
 
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.
hollywoodundead è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2013, 20:22   #2
AllerITA
Member
 
L'Avatar di AllerITA
 
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
AllerITA è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2013, 20:38   #3
hollywoodundead
Senior Member
 
L'Avatar di hollywoodundead
 
Iscritto dal: Jan 2009
Messaggi: 1234
Quote:
Originariamente inviato da AllerITA Guarda i messaggi
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.
ok ma l'altro elemento, ad esempio l'if, è sempre scritto nello stesso linguaggio in cui è scritto il primo elemento? e poi una cosa che non riesco a capire, ma che anche tu hai scritto come altri , l'if è un dato primitivo gia incluso ad esempio in java o piuttosto in c++, ma incluso in che senso? dove si trova il pezzo di codice dove la macchina virtuale o il compilatore in generale va a eseguire una volta che arriva a leggere "if" per tradurlo in bytecode e farlo eseguire dalla macchina ?


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.
hollywoodundead è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2013, 21:13   #4
AllerITA
Member
 
L'Avatar di AllerITA
 
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
AllerITA è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 10:33   #5
hollywoodundead
Senior Member
 
L'Avatar di hollywoodundead
 
Iscritto dal: Jan 2009
Messaggi: 1234
Quote:
Originariamente inviato da AllerITA Guarda i messaggi
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.
Si ma nella teoria dei compilatori e nell'università non ti viene spiegato come viene interpretato l'if in linguaggio macchina e perchè non bisogna instanziarlo visto che fa parte già del linguaggio. Ti viene detto che funziona cosi e basta . Vabbe in attesa di scoprirlo un giorno,vediamo se qualcun altro risponde
hollywoodundead è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 11:16   #6
hollywoodundead
Senior Member
 
L'Avatar di hollywoodundead
 
Iscritto dal: Jan 2009
Messaggi: 1234
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
eh? l'IF non è un dato primitivo, è una keyword del linguaggio in questione che il compilatore tradurrà con un controllo di un certo registro messo in un altro registro ed usato per gestire un salto, oppure no, in assembly. stop. istanziare una IF non vuole dire assolutamente niente.
Volevo scrivere int non if. Vale la stessa cosa anche per int che invece è un dato primitivo? E poi questo registro di cui parli è scritto sempre in linguaggio java per quanto riguarda il java? Comunque non ho scritto che l'if va istanziato. Ho scritto che nell'universita ti spiegano che non si instanzia l'if a differenza degli oggetti in quanto fa parte già del programma.
hollywoodundead è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 11:27   #7
mone.java
Senior Member
 
L'Avatar di mone.java
 
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"
mone.java è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 11:53   #8
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
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' un programma C?

E questo?

Codice:
main:

return 0
Le keyword di cui parli (if, int e quant'altro) fanno tipicamente parte della grammatica del linguaggio.

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.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 12:50   #9
hollywoodundead
Senior Member
 
L'Avatar di hollywoodundead
 
Iscritto dal: Jan 2009
Messaggi: 1234
Quote:
Originariamente inviato da mone.java Guarda i messaggi
Ma tu a che anno sei e di quale corso e in quale città?
Torino, devo frequentare il primo anno. Il corso è informatica.

Quote:
Originariamente inviato da WarDuck Guarda i messaggi
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' un programma C?

E questo?

Codice:
main:

return 0
Le keyword di cui parli (if, int e quant'altro) fanno tipicamente parte della grammatica del linguaggio.

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).
Ho letto in giro e ho capito che il parser serve per verificare la "grammatica" ad esempio del testo scritto all'interno di un file. Adesso, per spiegarla in maniera semplice ma che sia comprensibile, quando il parser e il compilatore leggono un file in cui trovano un if e un int, per tradurli nel linguaggio macchina che cosa fanno? Lasciamo per il momento da parte il codice ASCII che servirebbe solamente per ricavare in maniera comprensibile per la macchina la scrittura "if" o "int". Quello che voglio capire io, è che cosa permette alla macchina di capire quando scrivo "if" per esempio che quello è un "se" per il significato umano? dove sta scritto che quella scrittura, vada interpretata come un "se"?
hollywoodundead è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 13:04   #10
mone.java
Senior Member
 
L'Avatar di mone.java
 
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"
mone.java è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 13:18   #11
Xfree
Senior Member
 
L'Avatar di Xfree
 
Iscritto dal: Aug 2001
Messaggi: 9538
Quote:
Originariamente inviato da hollywoodundead Guarda i messaggi
Si ma nella teoria dei compilatori e nell'università non ti viene spiegato come viene interpretato l'if in linguaggio macchina e perchè non bisogna instanziarlo visto che fa parte già del linguaggio. Ti viene detto che funziona cosi e basta . Vabbe in attesa di scoprirlo un giorno,vediamo se qualcun altro risponde
Quote:
Originariamente inviato da hollywoodundead Guarda i messaggi
Torino, devo frequentare il primo anno. Il corso è informatica.
Devi frequentare ancora il primo anno e fai delle affermazioni certe su cosa non ti insegneranno all'università?
Xfree è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 13:55   #12
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12919
Quote:
Originariamente inviato da hollywoodundead Guarda i messaggi
Torino, devo frequentare il primo anno. Il corso è informatica.



Ho letto in giro e ho capito che il parser serve per verificare la "grammatica" ad esempio del testo scritto all'interno di un file. Adesso, per spiegarla in maniera semplice ma che sia comprensibile, quando il parser e il compilatore leggono un file in cui trovano un if e un int, per tradurli nel linguaggio macchina che cosa fanno? Lasciamo per il momento da parte il codice ASCII che servirebbe solamente per ricavare in maniera comprensibile per la macchina la scrittura "if" o "int". Quello che voglio capire io, è che cosa permette alla macchina di capire quando scrivo "if" per esempio che quello è un "se" per il significato umano? dove sta scritto che quella scrittura, vada interpretata come un "se"?
Detta molto velocemente, c'è una tabella di corrispondenza scritta da chi fa il compilatore che seguirà anche le specifiche dell'assembly del processore su cui far girare il programma.

Esempio:
Codice:
if (a < 47) ...
else ...
Viene processato in quelli che vengono chiamati token, dunque magari viene scomposto così:

<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
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 14:05   #13
hollywoodundead
Senior Member
 
L'Avatar di hollywoodundead
 
Iscritto dal: Jan 2009
Messaggi: 1234
Quote:
Originariamente inviato da mone.java Guarda i messaggi
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.
Grazie per il link mone, era quello che stavo cercando, ma non capivo come venivano chiamati questi processi eseguiti all'interno di un compilatore.

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 )viene assegnato all'interno del compilatore.E' una sorta di "alfabeto" numerico e letterale come appunto quelli presenti nella lingua inglese o in altre lingue.Il cuore di tutto ciò sono i passaggi di analisi sintattica e semantica(questo passaggio da il significato "se" all'if,while etc.. ) eseguiti dal parser o anche detto compiler-compiler, una sorta di compilatore interno al compilatore che alla fine genera una tabella di simboli , contenente tutte queste regole, chiamata AST.

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?
hollywoodundead è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 14:11   #14
hollywoodundead
Senior Member
 
L'Avatar di hollywoodundead
 
Iscritto dal: Jan 2009
Messaggi: 1234
Quote:
Originariamente inviato da Xfree Guarda i messaggi
Devi frequentare ancora il primo anno e fai delle affermazioni certe su cosa non ti insegneranno all'università?
Ho amici che mi hanno riferito certe informazioni, magari loro non sono ancora arrivati a fare certi argomenti che servirebbero per capire quello che chiedevo. Quindi la mia non era un affermazione fondata ma piuttosto una supposizione se ti fa stare piu tranquillo
hollywoodundead è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 14:36   #15
mone.java
Senior Member
 
L'Avatar di mone.java
 
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
Quote:
Originariamente inviato da hollywoodundead Guarda i messaggi
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?
hahaha si sono proprio io... ho anche fatto il "test" e lo avevo passato... ma son passati almeno 4 anni... come hai fatto a trovarmi? Cmq tranquillo non sono tornato a Bologna perchè l'università di Torino mi sembrava poco adatta o cose del genere... ma tutt'altri motivi!
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza"
mone.java è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2013, 14:58   #16
hollywoodundead
Senior Member
 
L'Avatar di hollywoodundead
 
Iscritto dal: Jan 2009
Messaggi: 1234
Quote:
Originariamente inviato da mone.java Guarda i messaggi
hahaha si sono proprio io... ho anche fatto il "test" e lo avevo passato... ma son passati almeno 4 anni... come hai fatto a trovarmi? Cmq tranquillo non sono tornato a Bologna perchè l'università di Torino mi sembrava poco adatta o cose del genere... ma tutt'altri motivi!
OT:Vabbe ma il test tarm non è selettivo, serve per valutare prevalentemente le conoscenze che hai, certo è che se non sei almeno piu che buono in matematica, tutto va al rallentatore. Mi ricordavo il tuo avatar nel 3d che avevi aperto, perchè dovevo scegliere come te che università fare
hollywoodundead è offline   Rispondi citando il messaggio o parte di esso
Old 19-08-2013, 11:37   #17
hollywoodundead
Senior Member
 
L'Avatar di hollywoodundead
 
Iscritto dal: Jan 2009
Messaggi: 1234
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
ma che vuol dire istanziare un IF?
Non vuol dire niente, è senza senso in quanto non è un oggetto da creare
hollywoodundead è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Stazione Spaziale Internazionale: rientr...
Forza Horizon 6: spunta la possibile dat...
Oral-B iO: sconti pazzeschi su spazzolin...
Intel Core Ultra 200 Plus: l'azienda pro...
Thinking Machines: la startup di Mira Mu...
Coalizione di gruppi di tutela chiede a ...
Reprompt è l'attacco invisibile s...
Robot aspirapolvere ECOVACS DEEBOT N20 P...
Batteria a stato solido: tra tre mesi Do...
iPhone 17 Pro in forte sconto su Amazon:...
Apple Studio Display finalmente in offer...
OpenAI sfida Google e lancia ChatGPT Tra...
Attenti ai commenti LinkedIn: come ricon...
Xiaomi Redmi Note 15 al prezzo minimo ga...
REDMI Buds 8 Lite in arrivo in Italia: A...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:44.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v