DOMANDA Si può creare un linguaggio con un altro linguaggio

Lugio

Utente Attivo
845
225
CPU
i5 6600k
Dissipatore
enermax liqmax 240
Scheda Madre
msi z170 gaming m3
HDD
seagate barracuda 1tb
RAM
hyperx fury 16gb cl14 2133hz
GPU
rx 480 8gb reference
Monitor
TV HD 32"
PSU
cx750m corsair
Case
cooler master mastercase 5
OS
windows 10 64bit
Ciao ragazzi,
Vi volevo chiedere,
è possibile creare un linguaggio tramite un altro linguaggio con non sia l'assembly o il macchina?
Per esempio
Da ruby
Puts "ciao, come ti chiami?"
Class "risposta" = gets.chomp
Class "Risposta"
Etc....


Inviato da HUAWEI VNS-L31 tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 

_Gra_

ExModertrattore
Utente Èlite
7,986
2,715
CPU
Intel i7 11700kf
Dissipatore
Noctua NH-C14S
Scheda Madre
Gigabyte Z590i Aorus Ultra
HDD
Samsung 970 Evo Plus
RAM
Crucial Ballistix 2*16 3600c16
GPU
Gigabyte 3060 Ti Eagle
Audio
Asus Xonar U7
Monitor
LG 27GR75Q e BenQ TH671ST
PSU
Corsair SF600 Platinum
Case
ITX Custom mod
Periferiche
L'elenco sarebbe lungo...
Per creare un linguaggio bisogna come prima cosa definire una grammatica, ma forse non ho capito io bene la domanda. Forse tu intendi un linguaggio interpretabile prima attraverso un altro, ma farebbe le stesse cose sostanzialmente.

:boh: ...
 
M

Mursey

Ospite
è possibile creare un linguaggio tramite un altro linguaggio con non sia l'assembly o il macchina?
Si.

In teoria lo puoi creare con qualsiasi linguaggio, puoi fare un motore che lo interpreta o scrivere un compilatore.
Come esercizio di studio non è male, come utilità effettiva invece... :rolleyes:
 

Lugio

Utente Attivo
845
225
CPU
i5 6600k
Dissipatore
enermax liqmax 240
Scheda Madre
msi z170 gaming m3
HDD
seagate barracuda 1tb
RAM
hyperx fury 16gb cl14 2133hz
GPU
rx 480 8gb reference
Monitor
TV HD 32"
PSU
cx750m corsair
Case
cooler master mastercase 5
OS
windows 10 64bit
Si.

In teoria lo puoi creare con qualsiasi linguaggio, puoi fare un motore che lo interpreta o scrivere un compilatore.
Come esercizio di studio non è male, come utilità effettiva invece... :rolleyes:
Beh, se riuscissi a creare un linguaggio di una facilità tipo ruby e con le funzionalità del c++ non sarebbe male.
Logicamente dovrei però prima padroneggiare bene il linguaggio di base?
Inoltre ciò farebbe diventare il linguaggio molto più lungo dovendo compilare 2 volte?

Inviato da HUAWEI VNS-L31 tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 

Lugio

Utente Attivo
845
225
CPU
i5 6600k
Dissipatore
enermax liqmax 240
Scheda Madre
msi z170 gaming m3
HDD
seagate barracuda 1tb
RAM
hyperx fury 16gb cl14 2133hz
GPU
rx 480 8gb reference
Monitor
TV HD 32"
PSU
cx750m corsair
Case
cooler master mastercase 5
OS
windows 10 64bit

BAT

Moderatore
Staff Forum
Utente Èlite
22,944
11,580
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Appena saprai programmare crei un linguaggio?
ci sono talmente tante cose TEORICHE da sapere obbligatoriamente anche solo prima di pensare a farlo...
 

1nd33d

Utente Attivo
653
279
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
HDD
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
GPU
XFX RX480 GTR Black Edition
Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
PSU
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
OS
Windows 10 64bit - Linux Mint 18
Saper programmare un linguaggio per crearne un altro non è minimamente sufficiente.
Serve tanta teoria sia sui linguaggi che sugli elaboratori che su algoritmi e computabilità.
Alla specialistica di informatica tipicamente si affrontano questi argomenti e il massimo che comunque si fa è creare l'interprete per un linguaggio minimale con grammatica libera dal contesto.
 
  • Mi piace
Reazioni: BAT e Mursey

Lugio

Utente Attivo
845
225
CPU
i5 6600k
Dissipatore
enermax liqmax 240
Scheda Madre
msi z170 gaming m3
HDD
seagate barracuda 1tb
RAM
hyperx fury 16gb cl14 2133hz
GPU
rx 480 8gb reference
Monitor
TV HD 32"
PSU
cx750m corsair
Case
cooler master mastercase 5
OS
windows 10 64bit
Non volevo creare un linguaggio da un altro linguaggio quando PADRONATO, ma volevo semplicemente sapere se si poteva.
Probabilmente però, quando avrò acquisito abbastanza informazioni ( devo ancora iniziare la facoltà di informatica alle superiori) ci proverò

Inviato da HUAWEI VNS-L31 tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 

1nd33d

Utente Attivo
653
279
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
HDD
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
GPU
XFX RX480 GTR Black Edition
Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
PSU
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
OS
Windows 10 64bit - Linux Mint 18
Non volevo creare un linguaggio da un altro linguaggio quando PADRONATO, ma volevo semplicemente sapere se si poteva.
Probabilmente però, quando avrò acquisito abbastanza informazioni ( devo ancora iniziare la facoltà di informatica alle superiori) ci proverò
"facoltà di informatica" alle superiori?
Ho inquadrato solo ora il contesto... si comunque quello che dici te si può, ma penso che avrai modo di affrontare seriamente certi argomenti fra non meno di 10 anni, continuando a studiare informatica anche all'università. Quello che ti interessa è un argomento molto, molto avanzato.
 

Lugio

Utente Attivo
845
225
CPU
i5 6600k
Dissipatore
enermax liqmax 240
Scheda Madre
msi z170 gaming m3
HDD
seagate barracuda 1tb
RAM
hyperx fury 16gb cl14 2133hz
GPU
rx 480 8gb reference
Monitor
TV HD 32"
PSU
cx750m corsair
Case
cooler master mastercase 5
OS
windows 10 64bit
"facoltà di informatica" alle superiori?
Ho inquadrato solo ora il contesto... si comunque quello che dici te si può, ma penso che avrai modo di affrontare seriamente certi argomenti fra non meno di 10 anni, continuando a studiare informatica anche all'università. Quello che ti interessa è un argomento molto, molto avanzato.
Non mi veniva indirizzo informatico :).
Lo so che è un argomento "molto in la", la mia era solo una domanda, ora sicuramente no ...

Inviato da HUAWEI VNS-L31 tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 
U

Utente 16812

Ospite
Non mi veniva indirizzo informatico :).
Lo so che è un argomento "molto in la", la mia era solo una domanda, ora sicuramente no ...

Inviato da HUAWEI VNS-L31 tramite App ufficiale di Tom\\\'s Hardware Italia Forum

Se il linguaggio è compilato, devi per forza conoscere l'architettura, in particolare quella 80X86 a 32-bit e a 64-bit, su cui andrai a far girare il tuo linguaggio, oltre naturalmente alla piattaforma software (Windows) :asd:
Quindi il linguaggio Assembly ma in ogni caso devi "padroneggiare" perfettamente la manipolazione delle stringhe e l'OOP :sisi:
Il compilatore è suddiviso in 3 parti che devi "progettare": lo "scanner", che legge i vari "token", il "parser", che analizza l'array di stringhe e produce il cosiddetto "albero di token", e infine devi scrivere il "code generator" in grado di analizzare l'albero di token e produrre l'Assembly (compilato poi con TASM o NASM) :asd:
Inutile che ti dica che per la gestione dell'I/O devi conoscere le API del S.O. utilizzato :D
Se invece il tuo linguaggio è interpretato, i passi sono più o meno gli stessi, l'unica differenza è che l'albero di token non passa attraverso il code-generator ma viene "dato in pasto" all'interprete senza alcuna traduzione in Assembly (per la gestione dell'I/O puoi utilizzare, in questo caso, le funzioni del linguaggio di programmazione) :sisi:
In caso di linguaggio pseudo-compilato verrà generato codice byte-code e non Assembly ma per la sua interpretazione avrai bisogno di una "macchina virtuale", devi quindi creare un simulatore di componenti quali la CPU, la RAM, ecc. :asd:
Hai parecchio da studiare, buon lavoro :D
 

Lugio

Utente Attivo
845
225
CPU
i5 6600k
Dissipatore
enermax liqmax 240
Scheda Madre
msi z170 gaming m3
HDD
seagate barracuda 1tb
RAM
hyperx fury 16gb cl14 2133hz
GPU
rx 480 8gb reference
Monitor
TV HD 32"
PSU
cx750m corsair
Case
cooler master mastercase 5
OS
windows 10 64bit
Se il linguaggio è compilato, devi per forza conoscere l'architettura, in particolare quella 80X86 a 32-bit e a 64-bit, su cui andrai a far girare il tuo linguaggio, oltre naturalmente alla piattaforma software (Windows) :asd:
Quindi il linguaggio Assembly ma in ogni caso devi "padroneggiare" perfettamente la manipolazione delle stringhe e l'OOP :sisi:
Il compilatore è suddiviso in 3 parti che devi "progettare": lo "scanner", che legge i vari "token", il "parser", che analizza l'array di stringhe e produce il cosiddetto "albero di token", e infine devi scrivere il "code generator" in grado di analizzare l'albero di token e produrre l'Assembly (compilato poi con TASM o NASM) :asd:
Inutile che ti dica che per la gestione dell'I/O devi conoscere le API del S.O. utilizzato :D
Se invece il tuo linguaggio è interpretato, i passi sono più o meno gli stessi, l'unica differenza è che l'albero di token non passa attraverso il code-generator ma viene "dato in pasto" all'interprete senza alcuna traduzione in Assembly (per la gestione dell'I/O puoi utilizzare, in questo caso, le funzioni del linguaggio di programmazione) :sisi:
In caso di linguaggio pseudo-compilato verrà generato codice byte-code e non Assembly ma per la sua interpretazione avrai bisogno di una "macchina virtuale", devi quindi creare un simulatore di componenti quali la CPU, la RAM, ecc. :asd:
Hai parecchio da studiare, buon lavoro :D
:asd:
Credo di si, ho capito solo linguaggio compilato e interpretato, windows e cpu/ram
Grazie per gli auguri, magari tra 15 anni vedrete il mio linguaggio :asd:

Inviato da HUAWEI VNS-L31 tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 
  • Mi piace
Reazioni: Utente 16812

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili