De nos jours, Lisaac est un sujet sur toutes les lèvres. De son impact sur la société à ses implications sur l’économie mondiale, Lisaac a retenu l’attention des experts et des citoyens. Avec une infinité d'opinions et d'analyses allant des plus techniques aux plus émotionnelles, il ne fait aucun doute que Lisaac est devenu un point de débat et de réflexion pour la société d'aujourd'hui. Dans cet article, nous explorerons les différentes facettes de Lisaac, en examinant à la fois ses aspects positifs et négatifs, dans le but de fournir un aperçu complet et enrichissant de ce sujet.
Lisaac | |
Date de première version | 2000 |
---|---|
Paradigmes | prototype, impératif, objet |
Auteur | Benoît Sonntag |
Développeur | Benoît Sonntag |
Dernière version | 0.42 () |
Typage | Fort, statique |
Influencé par | Self, Eiffel, Smalltalk |
Système d'exploitation | Multiplate-forme |
Licence | Licence publique générale GNU version 3 |
Site web | https://lisaac.org/ |
modifier ![]() |
Lisaac est un langage de programmation impératif à prototype compilé à l'origine conçu afin d'écrire le système d'exploitation IsaacOS et pour être adapté au développement de pilotes de périphériques. Il est principalement utilisé dans le cadre pédagogique par son créateur[1].
Lisaac est inspiré du langage Self pour les concepts d'objets à prototypes, ainsi que du langage Eiffel, pour les aspects d'ingénierie logicielle et notamment pour la programmation par contrat. Des concepts utiles à la programmation système comme la gestion des interruptions ont ensuite été ajoutés. Le compilateur Lisaac génère du C ANSI et est ainsi multi-plateforme.
La syntaxe est d'abord inspirée de Smalltalk mais aussi d'Eiffel et de Self, la syntaxe des blocs d'instructions est largement inspirée de C. Il reprend aussi quelques éléments syntaxique de Pascal.
Comme son grand frère Self, ce langage est minimaliste avec l’absence de construction pour les conditionnelles, les boucles et les itérations : Le compilateur Lisaac ne sait pas ce qu'est une conditionnelle, on implémente celle-ci avec les trois objets Boolean, True, False (True et False héritant de Boolean), dans lesquels les méthodes conditionnelles (if ; if/else, etc.) sont définies. Les types de base sont des objets, à la manière des classes de type expanded du langage Eiffel.
Section Header
- name := HELLO_WORLD;
Section Public
- main <-
(
"Hello world\n".print;
);
Section NUMERIC
) pour limiter l'usage de ces sections par les types définis;