A quoi sert Java ?

Aucun. Il fait un gros HS surement car il ne sait pas comment les logiciels fonctionnent.

Parce que techniquement pour concevoir un processeur qui comprend directement le byte code, on a ni besoin d'Apple ni de MS.

Théoriquement, c'est possible, mébon, ça serait se faire chier pour rien.
Faudrait sans doute créer une nouvelle architecture etc...
En effet oui, il faudrait une architecture entièrement prévu pour. Donc un os prévu pour, ou alors il faut que le processeur puissent également exécuter du x86 ou du arm.
Vu la complexité du byte code je n'ose pas imaginé le nombre de transistor nécessaire. Il n'y a pas vraiment d'intérêt à faire ça.
 
Chers amis, vous êtes dans l'erreur !

Le bytecode n'est par définition pas un langage natif. Ça n'a pas vraiment de sens de dire "mon processeur exécute du bytecode nativement", c'est antinomique.

Toutefois, comme Java a rencontré un énorme succès (en particulier sur le segment embedded), on a implémenté assez rapidement en hard ce que la JVM propose en soft.

C'est exactement ce que fait HISC (http://www.ee.cityu.edu.hk/~hisc/architecture.html), et il doit sûrement y en avoir un paquet d'autres.
On peut aussi citer les FPGA JOP (Java Optimized Processing) qui sont... des FPGAs compatibles avec Java sans JVM.

C'est vrai pour d'autres langages en POO ou sortant du bytecode.
 
Je suppose que les pcs disposant de distribution Linux ne sont pas vendus avec cet OS, mais bien sans et qu'on doit l'installer. A moins que je ne me trompe ?

Mais s'ils sont bien vendus avec OS, est-ce que les process disposent eux aussi du C comme langage natif ? Est-ce universel comme langage natif ? Quelque soit l'OS ?

Toutefois, comme Java a rencontré un énorme succès (en particulier sur le segment embedded), on a implémenté assez rapidement en hard ce que la JVM propose en soft.

Tu veux dire que le java a été implémenté comme langage natif sur les process ? Vu que tu parles du hardware...
 
Robin c'est le serpent qui se mange la queue cette histoire...
https://fr.wikipedia.org/wiki/Bytecode
"Le bytecode est un code intermédiaire entre les instructions machines et le code source, il n'est pas directement exécutable."

Puis ça, c'est une question de terminologie à la con au final. Ce n'est pas ça qui est important. Ce qui l'est en revanche, c'est que certaines plateformes implémentent une JVM en hard (comme jHISC que j'ai déjà cité) contrairement à pas mal d'âneries qui ont été affirmées sur ce thread.

"Programmation hardware", c'est juste du RTL, ça se fait beaucoup dans l'industrie... C'est pas ça qui rend les FPGA si particuliers.
On est d'accord que les FPGA sont une branche à part, mais un FPGA JOP est bel et bien optimisé pour exécuter le bytecode sans machine virtuelle. Le Java ne cherche pas ici à décrire un assemblage logique de portes (ce qui est, encore une fois, plus proche du RTL).

Oups, je crois qu'avec toutes nos discussions on perd de vue l'auteur du sujet !

Je suppose que les pcs disposant de distribution Linux ne sont pas vendus avec cet OS, mais bien sans et qu'on doit l'installer. A moins que je ne me trompe ?
Tu peux installer GNU/Linux sur n'importe quel PC (en fait sur n'importe quelle architecture compatible, donc x86 et AMD/Intel64 mais pas seulement). Quelques rares machines sont vendues avec un Linux dessus en revanche. C'est très peu courant.

Mais s'ils sont bien vendus avec OS, est-ce que les process disposent eux aussi du C comme langage natif ? Est-ce universel comme langage natif ? Quelque soit l'OS ?
L'OS n'influe pas le language natif (le jeu d'instructions) du processeur. C'est l'OS qui est compilé pour correspondre à ce dernier.
Le C n'est pas un langage natif à proprement parler. Il doit être compilé pour produire un code comportant des instructions qui elles seront natives pour une archi donnée.
 
  • J'aime
Reactions: robin4002
L'OS n'influe pas le language natif (le jeu d'instructions) du processeur. C'est l'OS qui est compilé pour correspondre à ce dernier.
Le C n'est pas un langage natif à proprement parler. Il doit être compilé pour produire un code comportant des instructions qui elles seront natives pour une archi donnée.

Je crois que j'ai arrêté le développement informatique pour ça. Parce que je comprends que la moitié.

Je sais que c'est l'assembleur qui traduit le code d'un langage genre c, java, ou encore javascript vers le langage natif. Mais alors le code natif à un nom particulier ? Ce n'est pas un langage alors ?

Code natif = langage machine = instructions assembleur (Langage ??) ?
 
C'est pas l'assembleur qui traduit du Java en Bytecodes, mais un programme en C compilé en assembleur.
Javascript n'est pas compilé donc c'est totalement hors sujet par contre !
Le code natif c'est plus ou moins de l'assembleur, l'assembleur a ceci de particulier qu'il peut posséder des macros automatisant des opérations.