VIPER is a visual interpreter of a slightly adjusted version of
Pascal, created as part of the OSI (Open Studies in Computer Science) platform
wazniak.mimuw.edu.pl.
Authors
Please send your comments, bug reports and other feedback to aszek
AT mimuw.edu.pl
Downloads:
- Complete package (English): a short manual, syntax,
sample programs and the stand-alone application all in English
vip-en.zip
- Complete package (Polish): a manual, syntax, sample
programs and the stand-alone application all in Polish
vip-pl.zip
Run as Java applet:
Screenshots
Demos
Almost all the demonstration animations come from the OSI website. Their authors are Piotr Chrzastowski-Wachtel, Jacek Chrzaszcz and Daria Walukiewicz-Chrzaszcz.
Quick intro
- EN: The left window is for the source code, under it are the output
and error consoles. The right frame displays the memory, gray buttons turn the
visibility of variables on and off. First you need to compile your code (press
the compile button). You will be prompted for the input data (if any). After
compilation it is not possible to edit the code. You may now start the program
or step through it. The program can be stopped at any time and speed can be
adjusted. When the program is over press the end button to return to edit mode.
-
PL: W oknie po lewej piszemy tekst programu, pod spodem na szarym tle
jest konsola na outputy, jeszcze nizej konsola na komunikaty kompilatora. Na
zoltym tle sa zmienne, szarymi przyciskami na gorze mozna wlaczac/wylaczac
widocznosc. Najpierw kompilujemy program (kompiluj) co wczytuje tez dane
wejsciowe. Jesli kompilcja byla OK, to od tego momentu edycja jest zablokowana.
Potem mozna uruchamiac (krok po kroku lub startem - zatrzymanie w dowolnej
chwili przez stop). Jak nam sie znudzi klikamy Koniec i wracamy do trybu edycji
kodu.
Papers
- VIPER, a Student-friendly Interpreter of Pascal; Michal
Adamaszek, Piotr Chrzastowski-Wachtel, Anna Niewiarowska, Proc. ISSEP'2008,
LNCS 5090, 192-203
Acknowlegments.
- We thank the following people who submitted
bug-reports, suggestions, or otherwise contributed to VIPER: Maksymilian
Osowski.
Changelog
- 1.11.2007
- Lower- and upper-case in keywords
- 1.11
- 2D arrays
- More i18n: configurable special names of fields in trees and
lists
- Checked that it compiles in Java 1.5
- 18.10
- The memory display frame is scalable (more can fit in)
- Distinguishing various kinds of compile errors
- The ability to read a variable's value from the previous
program run
- Comparisons of booleans (somehow we missed that before)
- Arrays of reals, bools and pointers are displayed
- 7.10
- Trees
- i18n
- Highlighting the code entry point of a stack frame
- A lot of bugfixes
- Unified the applet with the stand-alone program
- 28.08
- Speed adjustment slider
- New array initialization schemes
- Bidirectional lists
- 24.08
- One-directional lists
- Breakpoints, step into/over
- Detecting unreferenced data (garbage collection)
- Reading initial values without the pop-up dialog box
- Pointer highlighting by mouse-click
- Functions
sqrt(x), zamien(a,b), max(...), min(...)
- Arithmetic errors control
- Less strict syntax (semicolons)
- 04.08
- Records
- Pointers and their comparisons
- Functions, procedures, stack. Parameters by value
and by variable.
- 17.07.2006
- Arrays of int, real, bool
- Array indicies with dynamic updating
- Initialization of primitives and arrays
- Highlighting in the source code
- Variable visibility control
- Basic instructions of Pascal work
- Step by step execution and start/stop buttons
- Basic syntax error control, type-checking
- Array range and uninitialized variable reads checked