|
Lisaac : The power of simplicity at work for you |
|
|
|
Written by Administrator
|
|
Friday, 23 October 2009 22:10 |
Overview
Lisaac is the first compiled object-oriented programming language based on prototype concepts. The ideas in Lisaac are mostly inspired by Smalltalk (where all values are objects), Self (the prototype-based side) and Eiffel (the powerfull design by contract).
More than the advantages of Self, Lisaac ensures the protection of communication mecanisms and operating systems tools. Indeed, the use of prototypes and dynamic inheritance is fully adapted to the conception of operating systems.
Moreover, our tests learn us that the Lisaac compiler is able to give the same performances than a C compiler.
Here is a French presentation of the Lisaac language by its creator, Benoit Sonntag:
NB: You can find the slides of the presentation here.
Features
- Pure object language
- As fast as C code
- Dynamic and multiple inheritance
- Dynamic definition slot
- Static typing (invariant)
- Genericity type
- Auto-cast type system
- Programming by contract
- Interrupt manager
- Include C code facilities
- ...
Platforms
- All platforms are supported (host/target specific for GCC)
Preview
Section Header
+ £name := FILE_SYSTEM;
- £copyright := "2003-2005 Jérome Boutet, 2003-2007 Benoit Sonntag";
- £comment := "File System manager for Unix.";
- £external := `#include <unistd.h>`; // For `getcwd'
Section Inherit
+ £parent_directory:DIRECTORY <-
// Dynamic Parent: if first lookup call, creation of parent object.
(
+ cwd:NATIVE_ARRAY(CHARACTER);
+ result:DIRECTORY;
// Read Current directory.
DIRECTORY.string_tmp.clear;
cwd := DIRECTORY.string_tmp.to_external;
`getcwd(@cwd,255)`;
DIRECTORY.string_tmp.from_external cwd;
result ?= DIRECTORY_UNIX.physical_get_entry (DIRECTORY.string_tmp);
DIRECTORY.alias.put result £to (result.path);
? {result != NULL};
£parent_directory := result // Parent is a data now!
);
|
|
Last Updated on Friday, 27 November 2009 13:16 |