84 votes

J'ai entendu dire que LaTeX est complet. Existe-t-il des programmes écrits en LaTeX?

Il est possible de faire des choses intéressantes avec ce qui serait normalement considéré comme la composition de langues. Par exemple, vous pouvez construire l'ensemble de Mandelbrot avec le langage postscript.

Il est suggéré dans ce MathOverflow question que le LaTeX peut être Turing-complet. Cela implique la capacité à écrire des programmes arbitraires (bien qu'il puisse ne pas être facile!). Personne ne sait de toute l'exemple concret d'un tel programme en LaTeX, qui fait quelque chose de très inhabituel avec la langue?

85voto

Derrick Turk Points 2693

Dans le numéro 13 de The Monad Reader , Stephen Hicks écrit à propos de l'implémentation de la solution d'un concours ICFP (impliquant la navigation sur mobile) dans TeX, avec une utilisation abondante de macros. De manière amusante, le résultat de la solution quand typé est une carte postscript du chemin du mobile.

29voto

Norman Gray Points 4337

Andrew Greene a également écrit un interprète BASIC dans TeX ( plus de détails ). Cela peut compter comme légèrement pervers.

11voto

Pieter Points 1883

L' pgfmath bibliothèque me surprend encore. Mais sur une plus Turing-note: il est possible d'écrire une véritable machine de Turing en TeX, comme par http://en.literateprograms.org/Turing_machine_simulator_%28LaTeX%29. C'est juste une manière astucieuse d'utiliser des expansions de TeX.

PostScript est Turing complet ainsi, si vous allez lire le manuel , vous serez surpris par le général capacités de programmation de celle-ci (au moins, j'ai été).

6voto

Loop Space Points 685

Je ne suis pas sûr si cela est admissible à titre de la programmation à proprement parler, mais j'ai récemment commencer à faire quelque chose un peu comme Orientée Objet trucs en LaTeX. (Vous n'avez pas besoin de connaître toutes les mathématiques à suivre ce qui suit.) Dans des articles récents, j'ai écrit à propos de catégories, qui ont des objets et morphisms. Puisqu'il n'y ai été tout à fait un peu de ceux-ci, je voulais un style cohérent, de sorte que, disons,

3voto

Abel Points 24335

Je suppose que ce que la plupart des réponses à votre question est une machine de Turing mis en œuvre en LaTeX. Ou vous pouvez faire votre Mandelbrot en LaTeX.

EDIT: c'est beaucoup plus agréable et plus graphiquement agréable de Mandelbrot avec le LaTeX.

Vous dites "des programmes arbitraires", mais je suis sûr que vous savez que Turing ne signifie pas nécessairement que vous pouvez construire des voitures avec elle. I. e., LaTeX est très instruction riches. Comparer avec ce Un Jeu d'Instructions de l'Ordinateur qui se passe aussi pour être Turing, mais n'essayez pas de créer un face-programme de reconnaissance.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X