next to appendix

PACCO

up to main

Overview

Pacco stands for Pavia's Active-Component Compound Objects and is an object-oriented data processing environment. Pacco design aims at providing a convenient framework for the implementation and testing of data-processing algorithms. Most of the common tasks, such as object allocation and I/O, are handled by a data independent kernel, while type-dependent functions are managed in an object-oriented fashion.

Pacco integrates a command language (Tcl) to supply a high level of abstraction and a fast, compiled language (C) to cater for low-level data processing.

Key Features for Teaching

A set of features makes Pacco attractive in a teaching environment. Tcl, acting as a unifying language, integrates seamlessly image processing and graphical commands, thus enabling the creation of highly customizable visualization libraries and user interfaces.

The complexity of compiled-in structures is avoided by allowing object structures to be defined at run-time as grouping of basic components. This quality not only adds flexibility in programming but also brings the fringe benefit of providing an intrinsic semantic embedded in the component tree.

Run-time loading of extension libraries comes very handy when students develop C code. Pacco users can independently add new data types and/or processing functions, called actions, to their environment without modifying the installed copy of the package. This feature is very important because students do not work in a sheltered environment, but are faced with real world situations and difficulties.

Two different programming styles are available. Beside the more usual procedural one, student can experience data-driven programming thanks to the (kernel managed) bindings. Bindings are lists of commands linked to data changes: when the contents of an object part change, the relevant commands are executed triggering a processing chain-reaction.

Last, but not least, the kernel manages the high level allocation of data objects as either dynamic, shared or networked objects or as memory mapped files, which is useful when working with large files such as sequences.

Pacco has been used and tested for teaching since the academic year 1994-95 in the "Theory and Technic of Image Processing" course for the fifth and last year of the degree in computer engineering at the University of Pavia.

Next events

In the short time we will deliver the first official release of PACCO. The package will include full support for gray-scale images, color images being them rapresented in RGB, YR-YB-Y, HSV, scalar vectors and strings.

In the first half of 1997 we will start the test of TuLIP (Tutorials for Learning Image Processing) a PACCO based environment for the creation end the execution of interactive tutorials on Image Processing. This package could be the base of a more large project for the creation of a network sserver of Image Processing lessons.

At the same time we are developing a network dæmon, paccod, that will provide PACCO with new facilities for distributed computing and group-ware support. In particular the possibilty to have many PACCO interpreters connected togheter opens new perspectives in distributed teaching making easier the creation of a network server of Image Processing lessons.


If you're looking for additional information you can check the official PACCO home page.