Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Dal richiamo di Enrico Letta alla necessità di completare il mercato unico entro il 2028 alla visione di Nokia sul ruolo dell’IA e delle reti intelligenti, il Nokia Innovation Day 2025 ha intrecciato geopolitica e tecnologia, mostrando a Vimercate come la ricerca italiana contribuisca alle sfide globali delle telecomunicazioni
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
OPPO Reno14 F 5G si propone come smartphone di fascia media con caratteristiche equilibrate. Il device monta processore Qualcomm Snapdragon 6 Gen 1, display AMOLED da 6,57 pollici a 120Hz, tripla fotocamera posteriore con sensore principale da 50MP e generosa batteria da 6000mAh con ricarica rapida a 45W. Si posiziona come alternativa accessibile nella gamma Reno14, proponendo un design curato e tutto quello che serve per un uso senza troppe preoccupazioni.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-11-2005, 16:21   #1
>|HaRRyFocKer|
Senior Member
 
L'Avatar di >|HaRRyFocKer|
 
Iscritto dal: Jan 2003
Città: Roma / Napoli ---------------------- Vi PREGO, chiamatemi Marcello, non HarryFocker... Merci...
Messaggi: 1814
[CURIOSITA'] Come si scrive un linguaggio?

Sto seguendo all'università il corso di elementi di Informatica in cui sto studiando il c(++).
Ora che so che per scrivere un "programma" c'è bisogno di un linguaggio di programmazione, mi ponevo la suddetta domanda. Come si scrive? Si usa un linguaggio precedente? Se si, il primo linguagigo come è stato scritto?

Tutto questo su rieduchescional sciannel!

Grazie a chi mi risponderà...
__________________
LOVE WILL TEAR US APART.
--- Cisco Systems CCNA Certified --- MyLastFM --- My Deviations ---
Quando i 65daysofstatic si scioglieranno per problemi di droga del bassista... Io l'avevo già detto!
>|HaRRyFocKer| è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2005, 17:01   #2
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
guarda, non mi reputo in grado di spiegartelo, ma ti consiglio di trovare "linguaggi e Traduttori"
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2005, 18:01   #3
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Si usa un linguaggio per il quale esista un interprete. Per implementare il primo compilatore C (non conosco di preciso la storia, ma posso tirare ad indovinare), avranno usato un assembler, per il C++ il C e così via. Chiaro che puoi usare qualcunque linguaggio esistente per implementare il nuovissimo linguaggio ultra-figo X. Anzi, puoi usare anche il linguaggio stesso, una volta che hai pronto il "core".

La teoria dei compilatori è una branca piuttosto esoterica, ma molto affascinante. Se vuoi farti del male gratuitamente, studiala pure

Comincia con lo scrive un programma che dica se un espressione del tipo (3 * (9 + 15)) / 2 è corretta (come in questo caso) oppure no...scoprirai che non è tanto banale

EDIT: ho parlato di 'interprete', ma non fa molta differenza (a questo livello di discussione) con i linguaggi compilati.
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2005, 20:30   #4
DarkRevenge
Member
 
Iscritto dal: May 2005
Messaggi: 118
Quote:
Originariamente inviato da shinya
Si usa un linguaggio per il quale esista un interprete. Per implementare il primo compilatore C (non conosco di preciso la storia, ma posso tirare ad indovinare), avranno usato un assembler, per il C++ il C e così via. Chiaro che puoi usare qualcunque linguaggio esistente per implementare il nuovissimo linguaggio ultra-figo X. Anzi, puoi usare anche il linguaggio stesso, una volta che hai pronto il "core".

La teoria dei compilatori è una branca piuttosto esoterica, ma molto affascinante. Se vuoi farti del male gratuitamente, studiala pure

Comincia con lo scrive un programma che dica se un espressione del tipo (3 * (9 + 15)) / 2 è corretta (come in questo caso) oppure no...scoprirai che non è tanto banale

EDIT: ho parlato di 'interprete', ma non fa molta differenza (a questo livello di discussione) con i linguaggi compilati.
Quoto shinya e aggiungo questo link [click] che chiarisce forse un po' di più i vari "rami di discendenze" dei linguaggi di programmazione.
Come giustamente ha detto shinya, il C è nato dall'assembly, nel momento in cui si è deciso di creare un linguaggio molto più semplice (ma allo stesso tempo a basso livello come l'assembly) per riscrivere una primissima versione del codice di Unix scritta interamente in assembly. Tutto questo se la memoria non mi inganna
DarkRevenge è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2005, 21:11   #5
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
Quote:
Originariamente inviato da DarkRevenge
il C è nato dall'assembly,
1) non tanto il C, quanto il suo compilatore: progettare un linguaggio implica definirne sintassi e semantica, costruendo una grammatica e le relative mappature, realizzare un compilatore equivale a codificare l' algoritmo che prendendo un testo lo analizza secondo la grammatica di cui sopra e lo trasforma in codice oggetto, per far questo si userà un altro linguaggio tra quelli esistenti

2) non tanto "dall", quanto "in": mancando altri compilatori si dovette usare direttamente il codice macchina , ma non si ha "parentela" tra assembly e C
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2005, 23:50   #6
The3DProgrammer
Senior Member
 
Iscritto dal: May 2000
Messaggi: 1459
Quote:
Originariamente inviato da jappilas
1) non tanto il C, quanto il suo compilatore: progettare un linguaggio implica definirne sintassi e semantica, costruendo una grammatica e le relative mappature, realizzare un compilatore equivale a codificare l' algoritmo che prendendo un testo lo analizza secondo la grammatica di cui sopra e lo trasforma in codice oggetto, per far questo si userà un altro linguaggio tra quelli esistenti
Esattamente, il primo passo per la nascita di un linguaggio è la definizione di una grammatica che lo descriva. Ti faccio un esempio:

<espressione> -> <termine>{<operatore><termine>}*
<termine> -> 0-1-2-3-4-5-6-7-8-9
<operatore> -> + - / *

una grammatica del genere dovrebbe (a meno di lapsus, data l'ora ) riconoscere espressioni aritmetiche semplici del tipo

5+9-6 o 6+8 o anche un solo numero, ad es 5 (il carattere * indica che il contenuto tra parentesi graffe può essere ripetuto 0, 1 o n volte). Se non ricordo male (è passato un annetto dal corso di linguaggi) tale grammatica è detta EBNF. La grammatica va poi analizzata (va costruita la tabella dei simboli, va fatta l'analisi FIRST/FOLLOWS etc) per giungere alla realizzazione di un parser. Ad esempio un generico e poco dettagliato parser per la grammatica che ho scritto prima potrebbe essere:

void espressione(){

Termine();
AltraEspressione();

}

void AltraEspressione(){

Operatore();
Termine();

if(è finito il file di cui si sta facendo il parsing)
return;

AltraEspressione();

}

void Operatore(){

...
}

void Termine(){

...

}

A questo punto un parser siffatto è in grado di dire se un file è sintatticamente corretto, ma non è in grado di verificarne la semantica (ad es una espressione tipo 10/0 per il parser è corretta, ma non ha significato). Quindi il passo successivo è quello di realizzare un modulo di controllo semantico, poi uno di interpretazione (se ad es si vuole sapere il valore di un'espressione) e così via.

Ora, considera che un linguaggio di alto livello può essere composto da centinaia se non migliaia di regole sintattiche che compongono la grammatica, e inoltre l'analisi semantica è estremamente complicata (basti pensare ad es al solo type checking) e bisogna fare la conversione in codice macchina. I ragionamenti che ho esposto tra l'altro valgono solo x alcuni tipi di grammatiche (dette LL(1), in quanto è possibile distinguere tra le varie entità sintattiche guardando il solo primo carattere di un token, cioè una unità di testo) e possono essere estesi alle grammatiche LL(k), ma ci sono altre grammatiche a cui si approccia in modo radicalmente differente (se nn ricordo male ne avevo viste alcune tipo SLR(1), ma potrebbe essere una castroneria). Quindi, se vuoi interessarti seriamente all'argomento, pensa che tutto quello ke ho scritto va moltiplicato x 10^32

ciauz
The3DProgrammer è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 00:25   #7
The3DProgrammer
Senior Member
 
Iscritto dal: May 2000
Messaggi: 1459
ah, tra l'altro mi accorgo che sto pseudo parser che ho scritto è riferito ad una grammatica di forma + semplice (ho fatto il casting automatico ) chiamata BNF.
The3DProgrammer è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 08:35   #8
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
3dprog, a parte i complimenti per la spiegazione davvero esaurinte, una picola sottolineatura...
la firma tre righi (i mod sono pignoli, non famoli inc......)
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 09:55   #9
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
io mi sono cimentato in questo è ho lasciato il progetto per cose + alla mia portata.

vorrei tanto che intervenisse repscasb su questo 3d la quale a collaborato al compilatoreTc 3.1 della borland.....
okay è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 10:05   #10
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
fek è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 10:50   #11
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
x fek: non l'ho mica capita...

x altri: se vi interessa il parsing c'è un libro aggratis molto esaustivo a questo indirizzo: http://www.cs.vu.nl/~dick/PTAPG.html

Così vi viene il vomito
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 11:18   #12
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
A proposito di compilatori e interpreti...facciamo una gara?
Vediamo chi riesce a risolvere per primo questo problema http://spoj.sphere.pl/problems/FOOL/

Chi ce la fa posti il sorgente! (In realtà è una scusa, perchè io ci ho provato a mettermici lì una sera e non ci sono riuscito...ma forse dovrei mettermici più d'impegno! :P)
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2005, 11:52   #13
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
Quote:
Originariamente inviato da shinya
non l'ho mica capita...
< immagine postata da fek > ->(op di sostituzione)
"sì e poi c' era la marmotta che confezionava la cioccolata"
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate

Ultima modifica di jappilas : 17-11-2005 alle 13:30.
jappilas è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
La FIA avrà tolleranza zero nel 2...
Speciale 6 top bestseller Amazon: da 25,...
La super batteria di Panasonic è ...
Google lancia il Chrome del futuro: &egr...
Offerte FRITZ! a partire da 28€: ecco su...
Meta apre gli smart glasses agli svilupp...
La vera bussola digitale per le PMI &egr...
Colpo da 900 milioni: NVIDIA compra CEO ...
Apollo: il laser australiano che abbatte...
Battlefield 6: svelate le modalità...
Steam dice addio ai 32 bit: la fine del ...
LG OLED evo C5 scontati: il meglio della...
Intel e NVIDIA insieme? Le GPU Arc conti...
Nothing Phone (3a) Pro 12GB/256GB + pi&u...
ASUS ROG lancia quattro nuovi prodotti i...
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: 09:57.


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