Grammaire non contextuelleEn linguistique et en informatique théorique, une grammaire algébrique, ou grammaire non contextuelle, aussi appelée grammaire hors-contexte ou grammaire « context-free » est une grammaire formelle dans laquelle chaque règle de production est de la forme où est un symbole non terminal et est une chaîne composée de terminaux et/ou de non-terminaux. Le terme « non contextuel » provient du fait qu'un non terminal peut être remplacé par , sans tenir compte du contexte où il apparaît.
Oberon (langage)Oberon (alias Oberon-1) est un langage de programmation développé par Niklaus Wirth et Jürg Gutknecht de 1985 à 1987. Quoique le langage soit basé sur Modula-2 — dont Wirth est l'auteur —, plusieurs propriétés ont été éliminées et l'extension de type, en outre, fut introduite. Sa syntaxe ressemble au Pascal. Oberon élimine également le mécanisme explicite de désallocation de mémoire et intègre un ramasse-miettes (Garbage collector).
Langage naturelUn langage naturel, ou langage ordinaire, est une langue « normale » parlée par un être humain. Il s'oppose au langage formel, tel que le langage informatique, ainsi qu'aux langues construites. histoire des langues On désigne par langage naturel le langage parlé par les humains, apparu entre et avant notre ère.
Langage algébriqueEn théorie des langages formels, un langage algébrique ou langage non contextuel est un langage qui est engendré par une grammaire algébrique. De manière équivalente, un langage algébrique est un langage reconnu par un automate à pile. Les langages algébriques forment les langages de dans la hiérarchie de Chomsky. Ils ont des applications importantes dans la description des langages de programmation et en linguistique. Ils interviennent également dans la description des langages XML.
Code impénétrableLe code impénétrable d'un programme informatique est un code dont la compréhension est très difficile pour un humain tout en restant parfaitement compilable par un ordinateur. Le procédé par lequel du code est rendu impénétrable est appelé brouillage, ou offuscation. Cette technique de programmation – qui va à l'encontre des usages habituels – a ses raisons. C'est tout d'abord un moyen de protéger les investissements de développement d'un logiciel par des techniques de génération de code objet rendant plus difficile la rétro-ingénierie.
Machine LispLes machines Lisp sont des ordinateurs conçus pour interpréter Lisp efficacement et nativement. D'une certaine manière, elles furent les premières stations de travail mono-utilisateur commercialisées. Malgré le faible nombre de machines Lisp (environ unités en 1988), beaucoup de technologies communes de nos jours (telles qu'un ramasse-miettes efficace, l'impression laser, les interfaces fenêtrées, la souris, les haute résolution, les moteurs de rendu et plusieurs innovations dans le domaine des réseaux) ont été développées en premier lieu sur des machines Lisp comme celles utilisées par le centre de recherche Xerox PARC.
Expression (informatique)Dans les langages de programmation, une expression est un élément de syntaxe qui combine un ensemble de lexèmes retournant une valeur. C'est une combinaison de littéraux, de variables, d'opérateurs, et de fonctions qui est évaluée (ou calculée) en suivant les règles de priorité et d'associativité du langage de programmation pour produire (ou retourner) une nouvelle valeur. Par exemple, 2+3 est une expression arithmétique qui vaut 5. Une variable est une expression car elle représente une valeur contenue en mémoire, donc y+6 est une expression.
ModulaThe Modula programming language is a descendant of the Pascal language. It was developed in Switzerland, at ETH Zurich, in the mid-1970s by Niklaus Wirth, the same person who designed Pascal. The main innovation of Modula over Pascal is a module system, used for grouping sets of related declarations into program units; hence the name Modula. The language is defined in a report by Wirth called Modula. A language for modular multiprogramming published 1976. Modula was first implemented by Wirth on a PDP-11.
Read–eval–print loopA read–eval–print loop (REPL), also termed an interactive toplevel or language shell, is a simple interactive computer programming environment that takes single user inputs, executes them, and returns the result to the user; a program written in a REPL environment is executed piecewise. The term usually refers to programming interfaces similar to the classic Lisp machine interactive environment. Common examples include command-line shells and similar environments for programming languages, and the technique is very characteristic of scripting languages.
Compile timeIn computer science, compile time (or compile-time) describes the time window during which a language's statements are converted into 0s and 1s for the computer to understand. The term is used as an adjective to describe concepts related to the context of program compilation, as opposed to concepts related to the context of program execution (runtime). For example, compile-time requirements are programming language requirements that must be met by source code before compilation and compile-time properties are properties of the program that can be reasoned about during compilation.