INTERCALINTERCAL est une parodie de langage de programmation, et la référence canonique des langages de programmation exotiques. Ce langage a été créé par Don Woods et , deux étudiants de l'Université de Princeton, en 1972. Il tourne en dérision certains aspects des langages de programmation de l'époque, ainsi que la prolifération des propositions de construction de langage et de notation dans les . En conséquence, son humour peut paraître plutôt désuet pour des lecteurs modernes ayant grandi avec le C ou le Java.
MalbolgeMalbolge est un langage de programmation dans le domaine public inventé par Ben Olmstead en 1998, nommé d'après le huitième cercle de l'Enfer dans la Divine Comédie de Dante, le Malebolge. La particularité de Malbolge est qu'il a été conçu pour être le langage de programmation le plus difficile et le plus exotique possible. Toutefois, certaines des astuces utilisées pour rendre la compréhension difficile peuvent être simplifiées. Malbolge était si difficile à comprendre quand il est arrivé qu'il a fallu deux ans au premier programme Malbolge pour apparaître.
BrainfuckBrainfuck est un langage de programmation exotique, inventé par Urban Müller en 1993. Il tire son nom de l’union de deux mots anglais, brain (« cerveau ») et fuck (« niquer »), et joue sur les mots, puisque ce langage est volontairement simpliste, et parce que l'expression Brain Fuck évoque, en argot, ce qui met le cerveau dans un état de confusion par sa complexité apparente. Ce vocabulaire peu flatteur lui a d'ailleurs valu d'être écrit sous d'autres orthographes plus prudes, telles que Brainfck, Brainf** ou encore BF.
Turing tarpitUne Turing tarpit (traduction littérale, fosse de goudron de Turing) est un langage de programmation ou une interface utilisateur qui permet une certaine flexibilité dans ses fonctions, mais qui est difficile à apprendre et à utiliser parce qu'il offre peu ou pas de support pour les tâches courantes. L'expression a été inventée en 1982 par Alan Perlis dans les Epigrams on Programming : « Méfiez-vous de la fosse de goudron de Turing dans lequel tout est possible, mais rien d'intéressant n'est facile.
Pointeur (programmation)En programmation informatique, un pointeur est un objet qui contient l'adresse mémoire d'une donnée ou d'une fonction. C'est l'outil fondamental de l'adressage dit « indirect ». La notion de pointeur reflète l'utilisation différente que l'on peut faire d'un entier naturel, à savoir indiquer une adresse mémoire. Cette utilisation est très différente d'une utilisation arithmétique, d'où la création de registres de processeurs spécifiques (les registres d'adresse) et d'un type de donnée spécifique dans les langages de programmations.
Syntax (programming languages)In computer science, the syntax of a computer language is the rules that define the combinations of symbols that are considered to be correctly structured statements or expressions in that language. This applies both to programming languages, where the document represents source code, and to markup languages, where the document represents data. The syntax of a language defines its surface form. Text-based computer languages are based on sequences of characters, while visual programming languages are based on the spatial layout and connections between symbols (which may be textual or graphical).
Turing-completEn informatique et en logique, un système formel est dit complet au sens de Turing ou Turing-complet (par calque de l’anglais Turing-complete) s’il possède un pouvoir expressif au moins équivalent à celui des machines de Turing. Dans un tel système, il est donc possible de programmer n'importe quelle machine de Turing. Cette notion est rendue pertinente par la thèse de Church, qui postule l’existence d’une notion naturelle de calculabilité.
Lambda-calculLe lambda-calcul (ou λ-calcul) est un système formel inventé par Alonzo Church dans les années 1930, qui fonde les concepts de fonction et d'application. On y manipule des expressions appelées λ-expressions, où la lettre grecque λ est utilisée pour lier une variable. Par exemple, si M est une λ-expression, λx.M est aussi une λ-expression et représente la fonction qui à x associe M. Le λ-calcul a été le premier formalisme pour définir et caractériser les fonctions récursives : il a donc une grande importance dans la théorie de la calculabilité, à l'égal des machines de Turing et du modèle de Herbrand-Gödel.
Structure de contrôleEn programmation informatique, une structure de contrôle est une instruction particulière d'un langage de programmation impératif pouvant dévier le flot de contrôle du programme la contenant lorsqu'elle est exécutée. Si, au plus bas niveau, l'éventail se limite généralement aux branchements et aux appels de sous-programme, les langages structurés offrent des constructions plus élaborées comme les alternatives (if, if–else, switch...), les boucles (while, do–while, for...) ou encore les appels de fonction.
Programmation procéduraleEn informatique, la programmation procédurale est un paradigme qui se fonde sur le concept d'appel procédural. Une procédure, aussi appelée routine, sous-routine ou fonction (à ne pas confondre avec les fonctions de la programmation fonctionnelle reposant sur des fonctions mathématiques), contient simplement une série d'étapes à réaliser. N'importe quelle procédure peut être appelée à n'importe quelle étape de l'exécution du programme, y compris à l'intérieur d'autres procédures, voire dans la procédure elle-même (récursivité).