Il ne s'agit pas d'un problème technique mais plus d'une question qui me taraude l'esprit depuis que j'ai appris à « programmer » ou plutôt à formater avec TeX et LaTeX.

TeX a été écrit dans les années 70-80 en langage C. Or, en langage C, les variables pour effectuer des calculs sont assez simples d'usage. Elles sont typées (entier positif ou relatif, flottant, caractère, booléen, etc).

Mais avec TeX, faire des calculs est beaucoup plus compliqué et beaucoup moins pratique qu'en C puisqu'il n'existe plus que deux sortes d'objets variables (les compteurs et les longueurs) sur lesquels faire des calculs est syntaxiquement pénible (à mon avis).

Pour quelle raison Donald Knuth a-t-il choisi de n'avoir que deux types de variables sur TeX alors que manifestement il aurait pu (au vue du génie de TeX) au minimum reprendre la typologie des variables du langage C ?

Posée 15 Fév, 21:16

Andr%C3%A9C's gravatar image

AndréC
33818
Taux d'acceptation : 12%

Modifiée 20 Fév, 00:50

Pathe's gravatar image

Pathe ♦♦
1.9k655

je ne suis pas sûre où j'ai lu que Don Knuth a essayé (sans réussir) de ne pas faire de TeX un langage de programmation.

(16 Fév, 00:19) touhami touhami's gravatar image

Le premier langage dans lequel Knuth a écrit TeX est le Pascal. Le passage à C est plus tardif. Les outils "web", "tangle" et "weave" sont d'abord fait pour Pascal. Voir la documentation de web/tangle pour s'en convaincre.

(16 Fév, 01:09) Le TeXnicien de surface Le%20TeXnicien%20de%20surface's gravatar image

@Le TeXnicien de surface Le Pascal et le C gèrent les variables de façon sensiblement identiques : elles sont déclarées et typées. Les calculs dans ces deux langages sont assez simples à écrire contrairement à TeX.

(16 Fév, 10:43) AndréC Andr%C3%A9C's gravatar image
1

Votre question ne devrait pas apparaître sur ce site puisque elle fait intervenir des opinions (les vôtres et celles de ceux qui pourraient tenter de vous répondre) et que son contenu est fortement subjectif. Il n'y a donc pas de mauvaises ou de bonnes réponses.

(28 Fév, 20:42) Paul Gaborit Paul%20Gaborit's gravatar image

@Paul Gaborit Si la raison de « n'avoir que deux types de variables sur TeX » était motivée par des considérations techniques, ce ne serait pas si subjectif que ça...

(28 Fév, 23:30) denis ♦♦ denis's gravatar image
1

@denis Certes... Mais la seule considération technique est pragmatique: ces "deux sortes d'objets variables" (les compteurs/entiers et les dimensions en oubliant donc les tokens, les glues, les séquences de contrôle (ou macros) qui sont aussi des "variables" dans le sens où on y stocke de l'information) suffisent à faire tout ce dont a besoin TeX. La partie subjective vient ensuite: "...sur lesquels faire des calculs est syntaxiquement pénible (à mon avis)". Que peut-on répondre à cela ?

(01 Mar, 02:16) Paul Gaborit Paul%20Gaborit's gravatar image

@Paul Gaborit Je comprends cette partie subjective de ce post seulement comme la raison qui a poussé l'auteur à poser la question qui, en soi (« Pour quelle raison Donald Knuth a-t-il choisi de n'avoir que deux types de variables sur TeX alors qu[']il aurait pu [...] reprendre la typologie des variables du langage C ? »), ne m'apparaît pas comme subjective.

(01 Mar, 10:31) denis ♦♦ denis's gravatar image

D'aprèe le TeXbook pour produire un chapitre (le chapitre 15 par exemple), Knuth a tapé \beginchapter Chapter 15. How \TeX\ Makes\\Lines into Pages ....

Il était facile pour lui de programmer l'incrémentation d'un compteur chapter (il fait ça pour les exos) mais il décide de ne pas le faire.

(01 Mar, 19:54) touhami touhami's gravatar image
Affichage de 5 parmi 8 Afficher 3 commentaire(s) en plus
Soyez le premier à répondre à cette question !
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.

Mots-clés de la question :

×2
×1
×1
×1

Question posée : 15 Fév, 21:16

Question vue : 402 fois

Dernière mise à jour : 01 Mar, 20:43

Questions similaires