Jump to content
Rpg²S Forum
  • 0

Differenza Script-Sorgente


black_27
 Share

Question

Salve a tutti ragazzi!

Premessa: sono un laureando in informatica (quella vera, non ingegneria, con tutto il rispetto per gli ingegneri, che non fraintendessero!); mi sto approcciando quindi molto alla programmazione C/C++ e come da titolo vorrei sapere quali sono le differenze sostanziali tra un linguaggio di scripting come il Ruby e uno sorgente come il C++...attendo risposte, soprattutto da chi si occupa di programmazione!

Grazie in anticipo!

"Il guerriero della luce crede. Poiché crede nei miracoli, i miracoli cominciano ad accadere."

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Ti risponde un laureando in ingegneria informatica, che, come natura vuole, ne sa a pacchi e programma meglio di un becero laureando in informatica

La differenza principale sta nel fatto che un linguaggio di scripting è interpretato a run-time mentre un sorgente passando attraverso il processo detto compilazione viene tradotto in linguaggio macchina.

Ciò implica che un linguaggio interpretato è generalmente più lento di uno compilato.

 

Il linguaggio Ruby è letto da un interprete scritto in C.

Il linguaggio C è compilato da un compilatore scritto in C.

Il linguaggio C++ è compilato da un compilatore scritto in C++.

 

Il linguaggio Ruby è un linguaggio ad oggetti puro (tutto è un oggetto).

Il linguaggio C non ha oggetti.

Il linguaggio C++ è un linguaggio orientato agli oggetti (è possibile usarli così come farne totalmente a meno, usando i costrutti C-like).

 

Il linguaggio Ruby ha un modulo predefinito per il Garbage collection.

Il linguaggio C++ non ha un garbage collector.

 

Il linguaggio Ruby è ad alto livello, ciò significa che un software si sviluppa in breve tempo.

Il linguaggio C è a medio-basso livello, è semplice e necessita di più tempo per lo sviluppo, poco adatto per progetti di grande dimensioni.

Il linguaggio C++ è ad un livello leggermente più alto del C per l'astrazione data da classi e template, è molto difficile da usare e richiede un tempo di sviluppo più lungo del C, perché se sbagli il design degli oggetti puoi dover essere costretto a ricominciare da capo.

I Miei Script:
Salva Schermata (3 Aprile 2012)
Attacco Personalizzabile (2 Aprile 2012)
Keyboard Input (Porting) (17 Marzo 2012)
Continua...

Link to comment
Share on other sites

  • 0

Ti risponde un laureando in ingegneria informatica, che, come natura vuole, ne sa a pacchi e programma meglio di un becero laureando in informatica

Su questo avrei molto da ridire. XD Ingegneria informatica e facoltà di informatica sono due rami distinti. In informatica si fa molta più programmazione e progettazione di algoritmi e ottimizzazione del software, in ingegneria c'è più circuitazione (l'architettura degli elaboratori è colossale in ingegneria) e meno programmazione.

 

@black_27, se non l'hai capito, in parole povere il C e il C++ sono linguaggi che vengono prima scritti (codice sorgente) e poi convertiti tramite il compilatore in linguaggio macchina (binario) eseguibile dal processore tramite il compilatore. Una volta compilato il programma, è impossibile risalire al codice sorgente (ecco perché i software open-source consentono di scaricare il codice sorgente oltre al programma). Il Ruby, che è un linguaggio interpretato (come Phyton, PHP ecc...) non viene compilato, ma è semplicemente una serie di "script" che vengono letti riga dopo riga dall'interprete, che è un programmino che può convertire ciò che c'è scritto nello script in operazioni che il computer esegue. Ovviamente, il Ruby come tutti i linguaggi interpretati sono completamente aperti: in genere basta un editor di testo per visualizzare il codice del programma.

 

Ovviamente, ogni linguaggio ha i suoi pro e contro: Ad esempio, il C++ permette di operare con la macchina ad un livello più basso, e quindi, completo, oltre a permettere delle prestazioni decisamente maggiori, perché il programma viene direttamente eseguito dal processore, ma è molto più complicato e ci sono tantissime funzioni e primitive da imparare, e ci vogliono anni di pratica per padroneggiarlo completamente; oltretutto dovrai gestirti molte cose da te, come appunto l'allocazione di memoria e la sua liberazione una volta che quei dati non servono più (non c'è il garbage collector, appunto). Il Ruby però è molto più semplice: è dinamicamente tipizzato e possiede un GC integrato, questo ti consente di programmare velocemente senza doverti preoccupare dei dettagli, ma ha prestazioni molto minori nell'esecuzione, perché l'interprete deve fare da tramite tra il codice e il processore.

Edited by Holy87

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Su questo avrei molto da ridire. XD Ingegneria informatica e facoltà di informatica sono due rami distinti. In informatica si fa molta più programmazione e progettazione di algoritmi e ottimizzazione del software, in ingegneria c'è più circuitazione (l'architettura degli elaboratori è colossale in ingegneria) e meno programmazione.

 

C'è la qualità oltre che la quantità XD.

Sul fatto che ci si dedichi molto alle architetture ti do ragione ma spesso i due insiemi coesistono: per risolvere un problema di architetture sto impazzendo da un mese per cercare le strutture dati ottimali per costruire delle reti bayesiane in c++... piango ;_;

@Holy87 hai dei consigli su come posso fare?

I Miei Script:
Salva Schermata (3 Aprile 2012)
Attacco Personalizzabile (2 Aprile 2012)
Keyboard Input (Porting) (17 Marzo 2012)
Continua...

Link to comment
Share on other sites

  • 0

 

C'è la qualità oltre che la quantità XD.

Sul fatto che ci si dedichi molto alle architetture ti do ragione ma spesso i due insiemi coesistono: per risolvere un problema di architetture sto impazzendo da un mese per cercare le strutture dati ottimali per costruire delle reti bayesiane in c++... piango ;_;

@Holy87 hai dei consigli su come posso fare?

Stai parlando di algoritmi e strutture dati? XD

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

il concetto finale che i 2 geni sopra non hanno espresso è che qualsiasi codice deve essere infine scritto in "linguaggio macchina" che è in pratica un linguaggio totalmente binario, a seconda del livello (alto per ruby, più basso per C) del linguaggio di programmazione che usi ci possono essere più step di conversione che di fatto rallentano il tutto. Naturalmente la difficoltà di utilizzo diminuisce col salire del livello mentre la "libertà" scende gradualmente.

 

per il resto i due info-iati qui sopra sono dei bravi guaglioni u.u

Membro Segreto della
Vecchia Guardia del Making [Gif in fase di reload]


SCContest1Oct.gif
gifnatale1.pnggifnatale12.png

Link to comment
Share on other sites

  • 0

Altro fatto importante è che con un linguaggio interpretato devi farlo tradurre all'interprete ogni volta (quindi l'utente che userà il programma da te scritto deve avere l'interprete nel suo PC)

 

mentre per un linguaggio compilato hai l'exe (per windows) ed è fatta

 

P.s. Però mi è parso di aver visto da qualche parte un compilatore di ruby (forse mi sto sbagliando)

P.p.s wow flame, informatica vs ingegneria informatica u.u

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...