Lisaac

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 3Voir et modifier les données sur Wikidata
Site web https://lisaac.org/

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.

Caractéristiques

Syntaxe et sémantique

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.

Exemple de code :

Section Header

- name := HELLO_WORLD;

Section Public

- main <- 
(
	"Hello world\n".print;
);

Spécificités du langage

  • Le langage permet de définir des sections SELF, qui comme dans beaucoup d'autres langages permettent de limiter la portée du code (équivalent des blocs imbriqués), ainsi que des sections à types (par exemple Section NUMERIC) pour limiter l'usage de ces sections par les types définis;
  • On peut redéfinir les opérateurs dans n'importe quel objet (comme en Ruby par exemple) vu qu'ils sont des méthodes comme les autres;
  • Lisaac implémente la programmation par contrat introduite par Eiffel dont il reprend la syntaxe, il est donc possible de définir des préconditions, postconditions et invariants au sein des méthodes.

Annexes

Sur les autres projets Wikimedia :

Liens externes

Notes et références

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.