Non, le plus gros est toujours en lisp , d'ailleurs personne n'est arrivé à traduire emacs en C !!!!!
Où vois-tu ça?
Encore une fois, quand je regarde les sources, il me semble que le noyau (et donc l'interpréteur LISP) est codé en C (répertoires src et lib-src). Après on a un paquet de code en elisp qui accompagnent le noyau (répertoire lisp). Donc, il me semble que le code de base de emacs, ce qui forme vraiment emacs, est en C et non en lisp; car sans GCC, pas de emacs.
Oui, tout le noyau (et notamment l'interpréteur) est en C.
Mais le Lisp représente quand même une assez grosse partie, car les bibliothèques sont majoritairement en Lisp (c'est ce que voulait dire jack-ft, j'imagine). Au final, le Lisp est un peu ce qui fait l'intérêt d'Emacs, pour l'utilisateur.
Ah oui ça je suis d'accord.
C'est un formidable exemple d'une utilisation intelligente; comme c'est le cas pour Autocad ou pour Guile.
On a un cœur en C autour duquel les utilisateurs peuvent développer aisément des macros dans un langage plus simple d'emploi et plus facilement controlable, avec résultat immédiat.
D'ailleurs je rappelle que « emacs » c'est pour « Editor MACroS ». Le lisp sert à ces macros.
arf oui une partie et en C, je savais pas ^^
Mais ce dont je suis sure c'est que la partie en lisp personne n'est arrivé à la retranscrire en C entièrement !
D'ailleurs dite le moi si je me trompe la traduire un langage fonctionnel en impérative est plus aisé que le contraire.
Pas forcément. Aucun des sens n'est évident.
Traduire de la programmation par continuation en C demande tout un art.
Maintenant si personne n'a traduit le code de emacs en C c'est parce que personne n'y a vu d'intérêt. Ça briserait par la même ce qu'est emacs.
Je suis convaincu que c'est pleinement faisable: on peut tout faire en C vu qu'on a accès à ce qui se passe au niveau machine.
Tout à fait, mon cher LLB!
C'est exactement ce que je voulais dire!
Le noyau de base d'emacs est en C, et notamment l'interprète emacs-lisp.
Et tout le reste est en lisp.
Je ne connais pas la proportion précise, mais je dirais que la majeure partie est en lisp.
Quelqu'un sait-il si le noyau en C est en open source?
En tout cas, la partie en lisp est accessible à tout le monde.
Il y a une procédure (que j'ai souvent utilisée) qui permet de mettre en commun les corrections que chacun peut apporter à ce patrimoine lisp.
J'ai souvent entendu dire que le plus simple pour convertir en C un programme écrit en lisp est... d'écrire un interprète lisp en C et du lui faire interpréter le code lisp !
De ce point de vue-là, on peut dire qu'emacs est de fait écrit en C !!!
J'ai souvent entendu cet argument!
On peut tout faire en C.
On peut tout faire en assembleur.
On peut tout faire en Pascal.
On peut tout faire en Prolog.
etc.
En fait, on peut tout faire dans n'importe quel langage qui implémente une machine de Turing...
ce qui revient à dire que tout ce qui est programmable est... programmable avec n'importe quel langage de programmation qui permet de programmer ce qui est programmable...
Là, au niveau tautologique, j'ai fait très fort...
Après, tous ceux qui ont utilisé plusieurs langages de programmation savent que chacun a ses domaines de prédilection.
En tout cas, le fait d'avoir un interprète est indéniablement un avantage.
Imaginez que pour ajouter une fonction dans emacs, il faille recompiler emacs !!!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager