Results 1 to 1 of 1

Thread: Lisaac programming language

  1. #1
    Join Date
    May 2008
    Thanked 3 Times in 3 Posts

    Lisaac programming language

    Lisaac is the first compiled object-oriented programming language based on prototype concepts, with system programming facilities and design by contract.

    Lisaac's developers admired both Self's flexibility and dynamic inheritance, and Eiffel's static typing and design by contract features. Seeking to combine these two apparently contradictory feature sets, Lisaac was created.

    Lisaac was designed as the language in which the Isaac operating system would be programmed.

    The Lisaac compiler produces optimized ANSI C code, which can then be compiled on every architecture with an appropriate C compiler which makes Lisaac a real multi-platform language. Compiling results show that it is possible to obtain executables from a high-level prototype-based language that are as fast as C programs.

    concept small prototype-based programming language
    The ideas in Lisaac are mostly inspired by Smalltalk (all values are objects), Self (prototype-based)
    and Eiffel (design by contract)
    platforms all platforms (host/target specific for GCC)
    features pure object language
    very fast (like 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

    A mpeg2 decoder written in C was rigorously translated in Lisaac

    * Lisaac compilation options : -O -i20
    * Gcc compilation options : -O3 -fomit-frame-pointer -ftree-vectorize -msse -march=pentium4 -mtune=pentium4
    * System : Debian unstable/lenny
    * Video: 80Mo, 1m51s

    C version Lisaac version Lisaac Rate (%)
    Code line count 9888 6003 35.3% less
    Binary size 76Kb 88Kb 13.64% more
    Text size 51427b 53887b 4.78% more
    Run time YUV format (s) 30.74 44.43 44.5% slower
    Run time SIF format (s) 60.67 59.15 2.5% faster
    Run time TGA format (s) 97.87 83.48 17.2% faster
    Run time PPM format (s) 97.33 83.70 16.3% faster

    Intel(R) Core(TM)2 Quad CPU @ 2.40GHz, 4Go DDR2

    Lisaac is a hugh level language, so it explain 37,31% code line less than C program. Specialisations of the code made by the Lisaac compiler explain the 10% surplus of binary size. Data structure are heavier in Lisaac than C, but all memory is dynamically managed in Lisaac, so memory uses at runtime is about equal.]

    C++ alternative:

    Sather is an object-oriented programming language. It originated circa 1990 at the International Computer Science Institute at the University of California, Berkeley, developed by an international team led by Steve Omohundro. It supports garbage collection and generics by subtypes.

    Originally, it was based on Eiffel, but it has diverged, and now includes several functional programming features. It is probably best to view it as an object-oriented language, with many ideas borrowed from Eiffel. Even the name is inspired by Eiffel; the Sather Tower is a recognizable landmark at Berkeley. Sather also takes inspiration from other programming languages and paradigms: iterators, design by contract, abstract classes, multiple inheritance, anonymous functions, operator overloading, contravariant type system. Some of these features are normally only found in functional programming languages.

    The original Berkeley implementation is now maintained by many people, not all at Berkeley, and has been adopted by the Free Software Foundation therefore becoming GNU Sather. There are at least two other implementations: Sather-K from the University of Karlsruhe, and Sather-W from the University of Waikato.

    The former ICSI sather compiler (now GNU Sather) is implemented as a compiler to C, i.e., the compiler does not output object or machine code, but takes Sather source code and generates C source code as an intermediate language. Optimizing is by the C compiler, Sather code often performs better than the corresponding C++ code, and the generated C code can always be optimized by hand.
    The GNU Sather compiler, written in Sather itself, is dual licensed under the GNU GPL & LGPL.

    LLVM clang:

    Features and Goals
    Some of the goals for the project include the following:

    End-User Features:

    Fast compiles and low memory use
    Expressive diagnostics
    GCC compatibility
    Utility and Applications:

    Modular library based architecture
    Support diverse clients (refactoring, static analysis, code generation, etc)
    Allow tight integration with IDEs
    Use the LLVM 'BSD' License
    Internal Design and Implementation:

    A real-world, production quality compiler
    A simple and hackable code base
    A single unified parser for C, Objective C, C++, and Objective C++
    Conformance with C/C++/ObjC and their variants
    Of course this is only a rough outline of the goals and features of Clang. To get a true sense of what it is all about, see the Features section, which breaks each of these down and explains them in more detail.

    The development of a new front-end was started out of a need -- a need for a compiler that allows better diagnostics, better integration with IDEs, a license that is compatible with commercial products, and a nimble compiler that is easy to develop and maintain. All of these were motivations for starting work on a new front-end that could meet these needs.
    Last edited by lunaris; 11th December 2008 at 19:39.

Similar Threads

  1. Programming Fonts
    By Bill Pettis in forum The Off-Topic Lounge
    Replies: 0
    Last Post: 10th February 2010, 18:16

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts