Leonardo RE 4.0a: a multiplatform runtime engine ------------------------------------------------ Leonardo RE 4.0a is a multi-platform and multi-threading time-sharing virtual execution environment based on the Virtual CPU 4.0a. It is distributed as a sample prototype for executing multi-platform programs. Leonardo RE 4.0a contains the new runtime engine that will be part of an upcoming multiplatform version of Leonardo IDE, an integrated environment for developing and visualizing C programs, currently available only for Apple Macintosh. See: http://www.dis.uniroma1.it/~demetres/Leonardo/ for additional information. The prototype features console-level interaction with the runtime engine and is distributed for three different platforms: LeonardoRE4.0a-MacOS: executable file for MacOS (PowerPC processor) LeonardoRE4.0a-Win32.exe: executable file for Win32 LeonardoRE4.0a-Leo: executable file for Leonardo 3.4.1 The prototype version for Leonardo 3.4.1 provides visualization of the process scheduling queue of the virtual execution environment. The package contains 4 sample pre-compiled programs: bench: benchmark program for testing the performances of the Virtual CPU 4.0a. checkers: game of checkers (italian rules). fact: simple program that computes the factorial of some numbers. hello: simple "hello world" program. Pre-compiled programs are fully multi-platform and can be executed on either LeonardoRE4.0a-MacOS, LeonardoRE4.0a-Win32.exe, or LeonardoRE4.0a-Leo. Preliminary speed tests show that the Virtual CPU 4.0a is at least 40 times faster than the Virtual CPU 3.4.x currently distributed with Leonardo IDE 3.4.x. Usage: ------ The prototype provides a console that accepts the following elementary commands: bye, logout: quit leonardo load : load an executable program (put it on scheduling queue) run: start scheduling the virtual CPU ps: print process statistics dsm : disassemble code of process with given pid kill : kill process with given pid help, ?: print this command list The virtual execution environment features a Round-robin scheduling queue. To load a program and create a Process Control Block (PCB) in the scheduling queue, use command "load ". To inspect the processes currently ready to be scheduled, use command "ps". To start scheduling processes, use command "run": when the scheduling queue gets empty, the console is ready to accept new commands. To remove processes from the scheduling queue, use command "kill " where pid is a progressive indentification number associated with the process. To disassemble a program ready to be scheduled, use command "dsm ". Below we report a typical interaction session with Leonardo RE 4.0a: ----------------- Leonardo RE 4.0a Standard console interface [type ? for help] Leonardo> load hello Leonardo> run x x xxxxx x x xxxxx x x xxxxx xxxx x xxxx x x x x x x x x x x x x x x x x xxxxx xxxxx x x x x x x x x xxxx x x x x x x x x x x x x x x x x x x x x x x xxxxx xxxxx xxxxx xxxxx xx xx xxxxx x x xxxxx xxxx Leonardo> load fact Leonardo> load hello Leonardo> ps PID Code CodeSize Data DataSize Threads Stack StkSize EntryPt ------------------------------------------------------------------------------- 1 925DDE0 559 925E018 2126 1 925E8D0 8192 925DEE8 2 925CE08 397 925CFA0 2381 1 9261968 8192 925CE90 Leonardo> kill 2 Leonardo> ps PID Code CodeSize Data DataSize Threads Stack StkSize EntryPt ------------------------------------------------------------------------------- 1 925DDE0 559 925E018 2126 1 925E8D0 8192 925DEE8 Leonardo> run This program computes the factorial of some numbers fact(0)=1 fact(1)=1 fact(2)=2 fact(3)=6 fact(4)=24 fact(5)=120 fact(6)=720 fact(7)=5040 fact(8)=40320 fact(9)=362880 fact(10)=3628800 fact(11)=39916800 fact(12)=479001600 fact(13)=1932053504 Leonardo> bye ----------------- Distribution & disclaimers: --------------------------- The LeonardoRE4.0a package is freeware for non-commercial purposes. It can be freely distributed in electronic form on computer networks, on magnetic media or on CD-ROM, provided this "Read me" file is included. This software is provided "AS IS" and without warranty of any kind, neither express nor implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Under no circumstances including negligence, shall we, Camil Demetrescu and Irene Finocchi, be liable for any incidental, special or consequential damages that result from the use or inability to use the software, even if advised of the possibility of such damages. Comments and feedback: ----------------------- For any comments and feedback about LeonardoRE4.0a write to: ----------------------------------- Rome, July 7, 2001 Camil Demetrescu Irene Finocchi