Existe-t-il un interpreteur Lisp pour ti89 ???
Si oui, ou le trouver.
Ou sinon, ou trouver des sources C suceptibles d'être recompiler pour Ti89/92+/V200 ???
(G pas trouvé sur google)
PiNGoO
a écrit : Existe-t-il un interpreteur Lisp pour ti89 ???
Ou sinon, ou trouver des sources C suceptibles d'être recompiler pour Ti89/92+/V200 ??? (G pas trouvé sur google)
Kevin Kofler a écrit :
(à (de connaissance moi) (non (exister (pour (de interpréteur LISP) TI-89))))![]()
Traduction: À ma connaissance, il n'existe pas d'interpréteur LISP pour TI-89.
tu parles de toutes façons le caml a été programmé en C++ dc C++ powa !
HIPPOPOTAME
a écrit : syntaxe moche et illisible,
gestion de la mémoire archaïque,
un empilage d'options lourdes et mal foutues,
une compilation niveau maternelle,
avec beaucoup trop de tolérance envers les codes crades,
et des risques de sécurité ;
des abus de macros, de inline, etc...
syntaxe simple à apprendre
et rapide à taper,
gestion de la mémoire flexible,
un grand nombre d'options permettant d'optimiser le programme sur mesure,
une compilation qui ne rejette pas du code inutilement quand un simple warning suffit,
avec beaucoup de flexibilité dans le style de code,
permettant ainsi d'obtenir le code le plus efficace possible,
et la possibilité de supprimer les tests de bornes pour obtenir du code plus efficace en taille et en vitesse;
des possibilités de donner une syntaxe lisible à des expressions très compliquées par l'intermédiaire de macros, etc...
Et personnellement, même sur PC, je préfère de loin un programme en C de 100 KO qui finit son travail en 1 seconde par rapport à un programme en un langage "protégé" qui prend 10 MO et qui finit son travail en 1 minute...
HIPPOPOTAME a écrit :
c'est faux. ou alors, à ce compte là, tous les langages sont faciles à apprendre. Le C ne ressemble à rien d'autre, et pour quelqu'un qui ne connaît pas, c'est un OVNI.
Les programmes C sont systématiquement plus longs que les programmes caml.
Surtout chiante pour l'utilisateur. Le simple fait de voir comment on doit gérer les chaînes de caractère en C me fait doucement rigoler...
Tiens, ça me fait penser à un truc que je n'avait pas cité : les descripteurs de type (les cochonneries du style **(*char*) ) sont TRES TRES TRES mal faits, chiants, nuls.
Par rapport au beau systématisme camélien...
Sur une Ti on peut vouloir optimiser du code sur mesure. Sur un PC c'est contre productif.
Une compilation qui laisse passer beaucoup trop de choses... Enfin, ce n'est pas la compilation qui est tolérante, c'est le langage...
alors là d'accordau point d'inventer l'IOCCC... la belle affaire...
Non c'est faux. Sur un PC, à moins de potasser les spécifications techniques du processeur pendant des heures, on ne trouve pas le code le plus efficace, seul le compilateur est à même de faire les bons choix pour les petites questions d'implémentation.
et alors? tu crois que ce n'est pas le cas en caml?
trop d'abus! On ne sait jamais si une fonction classique style printf est une macro ou pas! Macros + effets de bord(++) => piège à cons
Tiens ça me fait encore penser à deux autres cochonneries du C :
- l'abus d'effets de bord.
- l'abus de surcharge des opérateurs (je ne me souviens même plus du nombre d'usages différents de *...)
Le C ressemble quand-même pas mal au BASIC et au Pascal.
Et puis tout dépend des librairies utilisées. On peut certainement avoir une librairie C qui offre une grande partie des fonctionnalités du runtime CAML.
Ce n'est pas si compliqué que ça,
ça permet du code plus efficace,
et puis il y a moyen d'écrire assez facilement des librairies de chaînes de caractères qui réallouent automatiquement les buffers au fur et à mesure
Il n'est pas trop dur d'y prendre l'habitude.
Et on peut souvent utiliser des parenthèses redondantes pour expliciter, par exemple: char (*x)[20]; contre char *(x[20]);.Dans le deuxième cas, la parenthèse n'est pas nécessaire, mais améliore nettement la lisibilité.
Pas nécessairement. On peut optimiser sur mesure pour un processeur bien particulier (par exemple parce qu'on veut faire une version pour chaque processeur, comme le fait Littleboy pour ses binaires de GCC pour TIGCC optimisés en vitesse).
C'est quelque chose de bien, ça! Si tu fais quelque chose de sale, tu auras un warning. Tu es libre de corriger ton code pour éviter les warnings (GCC connaît même un switch pour toi: -Werror). Mais je ne vois pas pourquoi un compilateur doit forcer le programmeur à programmer de la manière qu'il juge propre. Un compilateur n'est pas un être intelligent, et il trouve souvent des saletés là où il n'y en a pas. Donc il fait bien mieux d'accepter le code avec un warning que de le rejeter juste parce qu'il pourrait y avoir une saleté.
Les programmes de l'IOCCC abusent de la flexibilité du langage C. Ça existera toujours, ce genre de trucs.
Tu n'as pas compris. Il y a des cas où ça peut donner du code généralement plus efficace. Par exemple, un compilateur qui, en cas de doûte, accepte du code où il juge (à tord) qu'une variable pourrait ne pas avoir été initialisée (ça m'est déjà arrivé), permettra ainsi au programmeur de ne pas initialiser sa variable inutilement, ce qui donnera à coup presque sûr du code plus efficace (en taille et en vitesse) quel que soit le processeur de destination.
Ben alors le CAML n'est pas si sûr que tu le prétends...
Vive les macros GNU ({ ... }), qui permettent de déclarer des variables temporaires à l'intérieur des macros et ainsi éviter les problèmes avec les effets de bords! On l'utilise à pas mal d'endroits dans TIGCCLIB, ld-tigcc et même le portage TIGCC de GCC.
C'est très pratique de pouvoir écrire *(x++)=...; en une seule ligne.
Et en plus, ça correspond exactement au mode d'adressage (an)+ qu'on retrouve sur pas mal de processeurs.
Il n'y a pas de surcharge d'opérateurs en C (pas ++). Il n'y a que les sens définis par le langage:
* sous forme d'opérateur binaire: multiplication
* sous forme d'opérateur unaire: déréférencement dans une expression, déclaration d'un pointeur dans une déclaration (cette "ambiguité" est là exprès parce que les déclarations miment le code utilisé par la suite pour accéder à la variable qu'on vient de déclarer; cette correspondance est très pratique à connaître quand il s'agit de lire une déclaration C) Je ne vois pas de grande ambiguité ici.