Lisaac | |
---|---|
Класс языка | объектно-ориентированный прототипный |
Появился в | 2003 |
Автор | Benoît Sonntag |
Разработчик | Benoît Sonntag & Jérôme Boutet |
Выпуск | 0.13.1 (Спецификация) (17 февраля 2008 года) |
Система типов | статическая типизация |
Основные реализации: | Lisaac |
Испытал влияние | Smalltalk, Self, Эйфель |
Лицензия | GNU GPL 3 |
Сайт | isaacproject.u-strasbg.fr/… |
Lisaac — это первый компилируемый объектно-ориентированный язык программирования основанный на концепции прототипов, поддерживающий системное программирование и контрактное программирование.
Lisaac был разработан для написания операционной системы Isaac.
Компилятор Lisaac создаёт оптимизированный ANSI C код, который можно скомпилировать на любой платформе для которой имеется компилятор языка C, что делает программы на языке Lisaac переносимыми. Возможно получить программы столь же быстрые, как и программы, написанные на языке C[1][2].
Несмотря на то, что язык строго типизирован, нет различия между кодом и данными. Даже скомпилированный код сохраняет динамические свойства.
Section Header
+ name := HELLO_WORLD;
Section Public
- main <-
(
"Hello world\n".print;
);
Родительский объект — это просто слот, значение которого можно переопределить:
Section Header - NAME := DECOD_MPEG2_TO_SCREEN; Section Inherit - videoparent : OBJECT <- ( + result : OBJECT; typ .when 1 then { result := WINDOW;} .when 2 then { result := VIDEO_VGA;} .when 3 then { result := VIDEO_TVOUT;}; result ) Section Public - typ : INTEGER; - decode_stream <- ( putimage decode_to_bitmap; )
В Lisaac оператор — это слот, значение которого можно переопределить. Для примера переопределим оператор "+" для объекта NUMERIC:
- '+' Left 80 other:SELF :SELF <- Self - -other;
Или для матрицы:
- '+' Left 80 other:SELF :SELF <- ( + result : SELF; result := SELF.create count; 1.to tab.count do { i : INTEGER; result.put (item i+other.item i) to i; }; result )
Предусмотрены обобщённые объекты:
ARRAY[E], DICTIONARY[KEY,VALUE]
Контрактное программирование с использованием Z нотации.
Это заготовка статьи о компьютерных языках. Вы можете помочь проекту, дополнив её. |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .