Lisaac

Lisaac
Lisaac
Класс языка:

объектно-ориентированный прототипный

Появился в:

2003

Автор(ы):

Benoît Sonntag

Релиз:

0.13.1 (Спецификация) (February 17, 2008)

Типизация данных:

статическая типизация

Основные реализации:

Lisaac

Испытал влияние:

Smalltalk, Self, Эйфель

Сайт:

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 нотации.

Внешние ссылки

Сноски

  1. Isaac project benchmarks.(недоступная ссылка — история) Проверено 24 июля 2007.
  2. Computer Language Benchmarks Game. Архивировано из первоисточника 19 марта 2012. Проверено 8 июля 2008.



Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Lisaac" в других словарях:

  • Lisaac — Apparu en 2000 Auteur Benoît Sonntag Développeurs INRIA, LORIA et CNRS …   Wikipédia en Français

  • Lisaac — Infobox programming language name = Lisaac paradigm = object oriented prototype based year = 2003 designer = Benoît Sonntag developer = Benoît Sonntag Jérôme Boutet latest release version = 0.13.1 (Specification) latest release date = February 17 …   Wikipedia

  • Prototype-based programming — is a style of object oriented programming in which classes are not present, and behavior reuse (known as inheritance in class based languages) is performed via a process of cloning existing objects that serve as prototypes. This model can also be …   Wikipedia

  • Self (programming language) — Infobox programming language name = Self paradigm = object oriented prototype based year = 1986 designer = David Ungar, Randall Smith developer = David Ungar, Randall Smith, Stanford University, Sun Microsystems latest release version = 4.3… …   Wikipedia

  • Langage à prototype — Programmation orientée prototype La programmation orientée prototype est une forme de programmation orientée objet sans classe, basée sur la notion de prototype. Un prototype est un objet à partir duquel on crée de nouveaux objets par clonage. En …   Wikipédia en Français

  • Programmation orientee prototype — Programmation orientée prototype La programmation orientée prototype est une forme de programmation orientée objet sans classe, basée sur la notion de prototype. Un prototype est un objet à partir duquel on crée de nouveaux objets par clonage. En …   Wikipédia en Français

  • Programmation orientée prototype — La programmation orientée prototype est une forme de programmation orientée objet sans classe, basée sur la notion de prototype. Un prototype est un objet à partir duquel on crée de nouveaux objets. Dans le langage de programmation orientée… …   Wikipédia en Français

  • Design by contract — (DbC) or Programming by Contract is an approach to designing computer software. It prescribes that software designers should define formal, precise and verifiable interface specifications for software components, which extend the ordinary… …   Wikipedia

  • Eiffel (langage) — Pour les articles homonymes, voir Eiffel. Eiffel Apparu en 1986 Auteur Be …   Wikipédia en Français

  • Hello World — Pour les articles homonymes, voir Hello (homonymie). hello world (traduit littéralement en français par « bonjour le monde ») sont les mots traditionnellement écrits par un programme informatique simple dont le but est de faire la… …   Wikipédia en Français


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»