Posté le 25/03/2020 12:24
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 174 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 25/03/2020 12:26 | #
Long story short, c'est pas possible de faire un compilateur. Un assembleur (ASM → binaire) c'est déjà plus réaliste, mais ensuite il faut linker.
Lephe sera plus calé, mais en gros un compilateur demande énormément de ressources pour comprendre le code.
Citer : Posté le 25/03/2020 12:29 | #
Merci pour ta réponse, mais qu'entends tu par "énormément de ressources"
Trop de mémoire vive pour la petite machine c'est ça ?
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 25/03/2020 13:16 | #
Effectivement, un compilateur est un programme très compliqué ! Mettons d'abord à plat plusieurs choses concernant les programmes C.
• Le langage C est très riche. Un compilateur fait à la main ne comprendra jamais toutes les fonctions du C que les compilateurs comme GCC et Clang ont accumulé au fil de l'eau, et ne pourrait clairement pas compiler les add-ins un peu compliqués avant plusieurs années.
• Les add-ins C ne sont pas auto-suffisants ! Ils utilisent des bibliothèques comme MonochromeLib, fxlib ou même gint. Il faut donc disposer de ces bibliothèques pour réussir à compiler. Or, ça finit par prendre de la place... plus que ce qui est disponible dans la mémoire de stockage !
• La « traduction » en assembleur n'est pas du tout unique, il y a plein de façon de la programmer. Et il y a notamment plein d'optimisations à faire sur le code généré pour qu'il soit intéressant. Un compilateur fait main ne produira jamais des add-ins aussi finement optimisés que GCC et Clang.
• Et surtout, le compilateur ce n'est pas tout. Il faut aussi un assembleur, et il faut surtout un linker ! Un objet aussi bien plus complexe qu'il n'y paraît. De mon estimation personnelle, le linker est encore plus mystique que le compilateur chez la majorité des gens.
Tout ça, quand bien même on serait en mesure de le développer, prendrait plusieurs années avant d'arriver à maturité (gint à côté c'est rien par exemple !). Et ça tiendrait à peine dans la mémoire de stockage, et ce serait sensiblement lent, et tu passerais ton temps à retransférer les bibliothèques pour les mettre à jour. Sans parler du fait que l'écran des Graph mono est bien trop petit pour la syntaxe assez riche du C, et qu'il faudrait encore programmer un éditeur de code assez bien foutu pour compenser du manque d'ergonomie du clavier calto.
Techniquement, si on le voulait vraiment, on pourrait faire un compilo ultra simple avec un assembleur très con et un linker à la va-vite, et le faire marcher. Mais ça attendrait très vite ses limites : en RAM, et en espace de stockage sur la calto.
Darks a quasiment tout dit, je ne fais que développer. Je précise juste que comprendre le code n'est pas très dur (les lexer et parser sont générés automatiquement, l'analyseur sémantique n'est pas très compliqué), la difficulté c'est principalement de le compiler vers un assembleur potable (allocation de registre et optimisations) puis de linker.
Citer : Posté le 25/03/2020 14:08 | #
Waw...
Merci pour cette très longue réponse détaillée
Donc, jamais on ne verra de compilo on-calc si je comprends bien...
Sauf bien sur si les calculatrices passe sur une architecture unix (je pense à symbolibre)
Mais du coup, de manière purement théorique, le fichier g1a, c'est déjà du binaire ou c'est une archive avec les bmp et un langage très bas niveau ?
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 25/03/2020 14:11 | #
Sauf bien sur si les calculatrices passe sur une architecture unix (je pense à symbolibre)
Effectivement, sur Graph c'est tendu. Sur Symbolibre je pense qu'il est déjà installé, si non c'est l'affaire d'installer un paquet.
Le g1a c'est un binaire pur, du code assembleur et des données brutes. Ce n'est pas une archive, et il n'y a jamais de fichiers dedans. Tes images sont converties dans un format binaire durant la compilation (soit automatiquement, soit manuellement avec Sprite Coder ou équivalent).
Citer : Posté le 25/03/2020 14:14 | #
Ok, merci, donc rien de compréhensible par un humain là dedans...
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 25/03/2020 14:14 | #
Rien de compréhensible, en effet.