User manual

Introduction

Getting started

What can I do with Leonardo ?
What do I need to know to use Leonardo ?

Chapter 0 Installing Leonardo

Hardware and software requirements
Leonardo's components

PART I - A quick tour through examples

Chapter 1 Writing C programs

1.1 - A simple example: sorting an array of numbers

Step 1: creating a C project
Step 2: writing the program
Step 3: checking program's syntax
Step 4: running the program
Step 5: abort program's execution
Step 6: adding breakpoints to your program

1.2 - Another example: the breadth-first visit of a graph

Chapter 2. Visualizing C programs

2.1 - Leonardo's approach to visualization

2.2 - Visualization of the sorting algorithm

Step 1: choosing the information to visualize
Step 2: identifying the meaningful data structures
Step 3: creating a basic visualization
Step 4: refining the visualization: adding colors to rectangles
Step 5: refining the visualization: skipping events
Step 6: refining the visualization: designing a more robust geometric layout

2.3 - Another visualization example: the breadth-first visit of a graph

 
PART II - Writing, compiling and executing C programs

Chapter 3. Leonardo's menus

3.1 - The FILE menu
3.2 - The EDIT menu
3.3 - The SEARCH menu
3.4 - The RUN menu
3.5 - The WINDOWS menu

Chapter 4. The graph editor

4.1 - Editing graphs
4.2 - How can a C program load a graph ?

Chapter 5 The text editor

5.1 - Editing C sources and generic text
5.2 - Text editor's features
5.3 - Programming support:

5.3.1 - Syntax coloring
5.3.2 - Auto indentation
5.3.3 - Blocks balancing
5.3.4 - Indenting text blocks

Chapter 6. Creating C projects

6.1 - What is a C project ?
6.2 - Creating a C project
6.3 - Editing a C project
6.4 - Changing the memory size of a program

Chapter 7. Compiling a program

7.1 - Checking syntax
7.2 - Preprocessing a C source
7.3 - Compiling a single C source
7.4 - Generating an executable file

Chapter 8. Program execution

8.1 - The Leonardo virtual machine
8.2 - The execution environment:

8.2.1 - The process control tool
8.2.2 - The program trace window
8.2.3 - The console window
8.2.4 - The graph and view windows

8.3 - Reversible execution of programs
8.4 - Detecting runtime errors

 
PART III - Program animation

Chapter 9. Introduction to the Alpha language

9.1 - Alpha programs are sets of predicates
9.2 - A bit of syntax
9.3 - How is an Alpha predicate computed?
9.4 - Standard predicates are used to describe visual objects
9.5 - User predicates as useful subroutines
9.6 - Sets and relations in Alpha

Chapter 10. The graphic vocabulary

10.1 - The local coordinate system
10.2 - The graphic vocabulary
10.3 - Componing objects

Chapter 11. Working with views, points, lines, rectangles and other geometric objects

Chapter 12. Working with graphs and trees

12.1 - Graphs implemented through adjacency matrices
12.2 - Graphs implemented through node-node incidence matrices
12.3 - Graphs implemented through adjacency lists
12.4 - Unordered trees implemented through array of parents
12.5 - Binary forest implemented through records and pointers
12.6 - Ordered trees implemented through a first son - next sibling structure

APPENDIX A - Predicates for visualization

A.1 - Standard predicates for visualization control
A.2 - Standard predicates for geometric objects
A.3 - Standard predicates for graphs and forests visualization
A.4 - Library predicates
A.5 - Built-in predicates

APPENDIX B - Predefined constants