Histoire des techniques: langages de programmation intercal et ésotérique

Print E-mail
Technologie - Général
Wednesday, 21 September 2011 03:55

Fortran pour Python, Ruby Smalltalk, Lisp pour Clojure, langages de programmation utilisés pour créer des solutions de ce modèle la réalité des calculs à votre façon. Langues dont le cycle de vie, je l'espère, atteindre à prolonger pendant des générations.

Dans l'histoire des langues sont désormais oubliés, comme l'influent Algol 60 ou est-surprise-you-go-live langage Cobol. Et à la fin, où peu ont osé voyager ou expérience de jeu, nous retrouvons les langues dites de programmation ésotérique.

Langages de programmation

Les limites de ma langue sont les limites de mon monde. Tout ce que je sais, c'est ce que j'ai mots.
- Ludwig Wittgenstein

Cette phrase nous dit que notre connaissance de la réalité est basé sur la qualité de notre langue. Il est logique parce que nous le modèle dans le monde avec des mots et d'autres liés à la langue des signes. Pour les développeurs informatiques, je dirais que «les limites de ma langue sont les limites de la programmation sur ma machine." Si un langage de programmation est un ensemble fini de symboles écrits correctement (c'est à dire comme une syntaxe) peut être interprété par une machine. En d'autres termes, un programme informatique est une combinaison valide de ces symboles.

Eh bien, effectivement, il ya vraiment une telle machine. Les langages de programmation fonctionnent toujours des abstractions de la machine physique. Par exemple, Java, dont les programmes exécutés sur une machine virtuelle, mettez cachés des autres par une série de couches de style artisanat Matrioska en instructions du processeur purs, à son tour.

Dans le futur peut-être les langages de programmation sont tellement semblables à la «langue humaine» ne peut pas distinguer les uns des autres. Cette programmation sera un acte de communication existe entre les hommes et les machines. À ce jour, je pense que Wolfram Alpha est un aperçu de celui-ci.

Langues ésotériques

Ce qui rend un langage de programmation est ésotérique? Son but (ou son absence). Comme ils sont le résultat de tests de concepts, d'expérimentation, des défis personnels, ou des blagues tout simplement très nerd. Il ya habituellement créé pour résoudre des problèmes techniques importants, plutôt de montrer une syntaxe souvent inintelligible, mais très approprié pour surprendre ou amuser.

Une partie du défi de concevoir un langage de programmation, c'est qu'il est un langage de programmation ésotérique dans la décision. En termes d'informatique, cela signifie qu'il est Turing complet .

Il ya quelques jours parler d'eux, Trollscript , langage de programmation troll, mais qui est une modification de la Brainfuck classique, nous verrons plus tard, avant la première conférence de l'histoire.

Intercal

Nous assistons le père des langages de programmation ésotérique. Tout y est une parodie bien pensé par ses créateurs, une paire irrévérencieuse des étudiants à l'université de Princeton en 1972. L'un d'eux, Don Woods qui a été, après les examens finaux et tard le soir quand il et James Lyon a débuté sa conspiration contre la langue curieuse établie.

Intercal a été conçu pour jeter rit aux dépens des langues populaires du début des années 70, y compris Cobol, Fortran, Basic, APL, Lisp, etc. Syntaxe imité plusieurs d'entre eux et, surtout, a ajouté des éléments jamais vus par les programmeurs dans leur bon esprit: je n'avais pas de cycles, alors même que la somme des opérateurs de base. La langue de bois et de Lyon est un véritable casse-tête. Le manuel officiel dit à la intercal début:

Toute ressemblance avec d'autres langages de programmation, vivants ou morts est purement fortuite ... Le nom complet du compilateur est «langage compilé sans sigle prononçable" ... Il est incroyablement facile à apprendre, adapté pour les programmeurs jeunes ... et un défi pour les praticiens ... Il est bien connu qu'une personne dont le travail est incompréhensible est tenu en haute estime.

Un "Bonjour, monde" En intercal ressemble à ceci:

DO ,1 < - #13
PLEASE DO ,1 SUB #1 < - #238
DO ,1 SUB #2 < - #108
DO ,1 SUB #3 < - #112
DO ,1 SUB #4 < - #0
DO ,1 SUB #5 < - #64
DO ,1 SUB #6 < - #194
DO ,1 SUB #7 < - #48
PLEASE DO ,1 SUB #8 < - #22
DO ,1 SUB #9 < - #248
DO ,1 SUB #10 < - #168
DO ,1 SUB #11 < - #24
DO ,1 SUB #12 < - #16
DO ,1 SUB #13 < - #162
PLEASE READ OUT ,1
PLEASE GIVE UP

Et sur le site officiel on peut lire cet avertissement belle intercal:

Abandonnez tout bon sens, vous qui venez ici.

OK. Vous ProgramDir en C. Hacked en Lisp. Fortran et Basic ne causent pas de la terreur ... Dominas une douzaine de langues qui n'ont jamais entendu parler ... Peut-être übergeeks vous êtes prêt pour le défi ultime: intercal.

Il est toujours possible d'utiliser intercal. Par exemple, pour installer des distributions Linux comme Ubuntu, tapez simplement:

sudo apt-get install intercal

Bien sûr, intercal pas le seul de son genre. Il ya des dizaines de langues aussi bien. Fermons cet article avec d'autres ésotérique et sa façon particulière d'imprimer "Bonjour tout le monde!" Screen.

LOLCODE

Si lolcatz utilisent cette langue sera calendrier pour saluer le monde:

HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE

Brainfuck

Minimaliste, mais ce programme un «Bonjour tout le monde!".

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+
++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

Urban Müller créé en 1993 pour mettre en œuvre le compilateur le plus petit possible.

ZOMBIE

Conçu pour fonctionner sur une interface mécanique du moteur étant zombies orientés (?). Les éléments de langage sont composés de morts-vivants, des démons et des djinns.

HelloWorld is a zombie
summon
task SayHello
say "Hello World!"
animate
animate

Shakespeare

Objectif de conception: pour rendre un code source du langage de programmation si beau que vous vous souvenez des œuvres de Shakespeare. Comment accueille cette langue? Avec un trop grand nombre de lignes de code en comparaison avec d'autres, vous êtes le top dix:

The Infamous Hello World Program.
Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.
Act I: Hamlet's insults and flattery.
Scene I: The insulting of Romeo.




Font