Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: Java vs C++

  1. #1

    Java vs C++

    Java

    1)Creo il file.java
    2)compilo il file.java con javac (crea il .class)
    3)eseguo il file.class con java

    C++
    1)Creo il file.cpp
    2)compilo il file.cpp con bcc32 (crea il .obj e il .exe)
    3)eseguo il file.exe

    ora..la mia domanda stupida è...xchè java non mi crea un .exe??
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  2. #2

    Re: Java vs C++

    Originariamente inviato da JunkyFunki
    Java

    1)Creo il file.java
    2)compilo il file.java con javac (crea il .class)
    3)eseguo il file.class con java

    C++
    1)Creo il file.cpp
    2)compilo il file.cpp con bcc32 (crea il .obj e il .exe)
    3)eseguo il file.exe

    ora..la mia domanda stupida è...xchè java non mi crea un .exe??
    Perchè java è un linguaggio ibrido per metà compilato e per metà interpretato che deriva la sua capacità di essere multipiattaforma (cioè LO STESSO codice SENZA ALCUNA MODIFICA gira su qualunque piattaforma) proprio da questa sua caratteristica.In sostanza mentre dal c++ con la compilazione crei un .exe che "contiene" delle istruzioni macchina specifiche di quella piattaforma (harware (istruction set del processore) + Sistema operativo),con java il file class creato con la compilazione contiene delle istruzioni non direttamente eseguibili dalla macchina ma perfettamente compensibili da QUALSIASI Java Virtual Machine,sia essa installata su Windows Linux,o MacOs.Quindi fino a che ti mantieni al livello di file class le istruzioni che hai sono ancora multipiattaforma,quando poi dai impasto il file class alla JVM con java tuaclasse essa provvede a tradurre una per una tutte le istruzioni in Bytecode (così si chiama questo linguaggio intermedio) in istruzioni specifiche per la pittaforma in cui la JVM stessa è installata.Ovviamente la JVM per linux sarà internamente molto diversa da quella per Windows.Spero di averti chiarito un po le idee.Comunque se quello che ti interessa è ottenere una funzionalità simile agli exe,cioè doppio click sul file del programma ed esso parte senza invocare espicitamente il comando java fammi un fischio.Ciao
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3

    Re: Re: Java vs C++

    Originariamente inviato da unomichisiada
    ...
    1)
    quindi il file x.class è l'analogo del x.obj?

    2)
    ho appena scaricato un simulatore di linux (per la precisione questo : http://sourceforge.net/project/showf...ease_id=215733 ) sai mica qual'è il comando in linux per andare in una specifica cartella??

    ad esempio in dos avrei scritto "cd cartella" ma con linux??
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  4. #4
    Utente di HTML.it L'avatar di untamed
    Registrato dal
    Sep 2004
    Messaggi
    830
    ... con linux scriverai "cd cartella"

    QUi trovi un riassuntino in italiano di un po' di comandi shell:
    http://www.velociraptus.com/haiti/linux/viewcom.html

  5. #5

    Re: Re: Re: Java vs C++

    Originariamente inviato da JunkyFunki
    1)
    quindi il file x.class è l'analogo del x.obj?

    2)
    ho appena scaricato un simulatore di linux (per la precisione questo : http://sourceforge.net/project/showf...ease_id=215733 ) sai mica qual'è il comando in linux per andare in una specifica cartella??

    ad esempio in dos avrei scritto "cd cartella" ma con linux??
    1)Assolutamente no!I file obj sono solo dei file (uno per ogni file di codice C o C++ del progetto) che contengono codice macchina come quello dell'eseguibile (quindi non multipiattaforma).Piu precisamente i passi che portano dalla scrittura del codice in linguaggio C o C++ all'eseguibile prevedono una traduzione di ogni file di codice in un corrispondente file .obj e un successivo linking (collegamento) di questi moduli separati in un unico .exe (insieme alla altre operazioni varie come la risoluzione delle references a librerie esterne etc...)

    2)Si anche in linux si usa il comando cd,l'unica differenza era uno spazio da qualche parte ora non ricordo.comunque ti consiglio di fare una ricerca su google ,trovi una marea di documenti che ti posono riassumere i comandi da shell.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6

    Re: Re: Re: Re: Java vs C++

    Originariamente inviato da unomichisiada
    ...

    Se ho capito bene basta compilare il .cpp con compilatori diversi (uno x win ,uno x linux ect ect) per avere lo stesso effetto di quello che fa java solo col .class?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  7. #7
    Utente di HTML.it L'avatar di edriv
    Registrato dal
    Oct 2004
    Messaggi
    367
    No.
    Non tutto il codice è portabile, per grandi programmi che usano API del sistema operativo o altre caratteristiche che dipendono da esso, bisogna cambiare tutto per compilare su un altro OS.
    I've got a bike. You can ride it if you like.

  8. #8
    Originariamente inviato da edriv
    No.
    Non tutto il codice è portabile, per grandi programmi che usano API del sistema operativo o altre caratteristiche che dipendono da esso, bisogna cambiare tutto per compilare su un altro OS.
    Togliendo questa categoria di prg , per far diventare portabile il resto dei prg basta compilare il codice nei vari compilatori dei vari so?

    PS: esiste un compilatore "universale"? :master:
    ad esempio , al comando "compila miofile.cpp" vengono creati tanti .exe quanti sono gli so + utilizzati (win,linux ect ect)
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    Originariamente inviato da JunkyFunki
    Togliendo questa categoria di prg , per far diventare portabile il resto dei prg basta compilare il codice nei vari compilatori dei vari so?
    Dipende... se il codice è scritto tutto utilizzando lo standard, probabilmente sì, ma per la maggior parte delle volte occorre ricorrere a trucchi: istruzioni per il preprocessore che rendono il codice un'accozzaglia di #IFDEF #ENDIF.
    Originariamente inviato da JunkyFunki
    PS: esiste un compilatore "universale"? :master:
    ad esempio , al comando "compila miofile.cpp" vengono creati tanti .exe quanti sono gli so + utilizzati (win,linux ect ect)
    No: piattaforme diverse hanno chiamate di sistema diverse, che rendono impossibile un "compilatore universale". L'universalità è data proprio dall'avere una macchina intermedia che interpreta codice semicompilaro --> Java.
    Anche perchè Sistemi siversi hanno eseguibili di tipo diverso: Win ha l'estensione .EXE, Linux non ha un'estensione...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    un altra curiosità...

    In che linguaggio è stata implementata la JVM?

    Si può considerare la JVM come un compilatore a livello + basso rispetto ai normali compilatori?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.