BBP - Project

It is believed that we are past the eras of structured programming and modular programming, and that we are entering the era of block building programming which is meant to support mainly software reusability.

BB programming is aimed at top software engineers, primarily in the field of systems programming. The methodology of BB Programming is to support all levels of programming.

In BB programming, blocks function as subblocks for other blocks. The block is based on the concept of the black box, i.e. the system. Both the system and the (black) box, are well known terms since the advent of Cybernetics and The Theory of Systems. Hence BB Programming is Block Building Programming with Black Boxes. This is why the terms block and box are synonyms in BBP.

BBP - Logo

Every BB program is a box containing other boxes. The box is called the superbox, the boxes inside it are called subboxes. All boxes have inputs and outputs which are interconnected. Every box has a behavior which transforms its input values into output ones with respect to time.

The well known concept of the system is fairly general and serves as a good way of expressing static structures, i.e. systems with fixed subsystems and rigid interconnections. It is not as useful for expressing dynamic structures, i.e. the systems in which the connections and/or the subsystems are variable. To overcome this drawback the accepted basic conceptual background has been extended so that BB programming is able to cope with variable interconnections, reconfigurable and shared subboxes, etc.

It is claimed that these extensions are the new and key features which assure that BB programming will significantly improve:

Subprograms, modules and programs implemented with other programming technologies and even computer instructions can become basic boxes of BB programming. Therefore, it is expected that BB programming should work at any programming level, even as an assembler or command language (JCL). Moreover, BB programming could be a tool in the logical design of circuits, boards and computers, as they all can be seen as boxes, too.

BB programs are drawn rather than written. (In the early stages of the project it was discovered that the written form of BB programs is possible, but not practical.) BB programs can be seen as flow charts in which both the flow of control and the flow of data are explicitly expressed. In addition, BB charts are able to express modularity and recursion.

Designing BB charts by hand is troublesome and boring. The BB Programming Environment was designed to simplify this task and to make it more enjoyable. At present, the Environment assists in the creation of BB charts. BB charting is meant to be viewed as a new method of programming rather than a supplement to classical programming!

Besides the graphical form of BB programs, the Environment maintains several internal complex data structures which allow rapid design, updating, storage and retrieval of BB programs. These internal data structures will be used for code generation and for symbolic debugging.

It is supposed that the subboxes could be fetched into the designed box from a box library and that the newly designed box could be inserted into such a library. (At present, the BB Programming Environment does not support box libraries.)

A very short review of the stages of the BB programming project is given in the following table:

year

 stage

goal

ref

1984

 initial

the formulation of purpose

[1]

1986-87

exploration

the experimental implementation

[2]

1988

study

1st draft

[3,4]

1989-90

verification

user interface + box design

---

1991

demonstration

demonstration version

[5]

Opponents of the initial report [1] doubted whether such programming was possible at all. Their doubts were allayed by the experimental results at the exploration stage. Some of the initial intentions were reconsidered, and in particular, written programming has been abandoned.

Critics of certain results of [3,4] objected that personal computers are not sufficient for drawn programming. The verification stage has shown that even 12MHz PC/AT with 1MB of memory is enough for fast and efficient BB charts design.

BBPE, including its MKI interface, has been implemented in Borland TURBO C for IBM PC/AT and compatibles, under MS-DOS 3.3 and later.

In the years 1984-1990, the BB Programming Project was carried out at VÚSEI-AR (Institute of Socio-Economic Information and Automation in Management), Bratislava, CSFR. In the years 1990-1, the project has been under the auspices of the MORAGRO Corp. in Slušovice, CSFR. Since 1992 the BBP Project is frozen due to lack of support - VÚSEI-AR abandoned software engineering projects, has been reprofiled and renamed; MORAGRO ceased to exist.

The plan for the next stages of the project was following:

stage

objective

1

2nd draft, including data types, arrays and structures

2

code generation

3

debugging, with animations

4

box/block libraries support

5

theory, impacts, summary, 1st release

In the future, examples from [3,4] are to be redrawn and new ones added, all using BBPE. After refinement of the English version of the BB terminology and after the 2nd draft, a code generator and a BB debugger will be implemented. An in-depth discussion of the extended features has been postponed until BB programming is presented to the public, probably until the end of the stage 3.

Bibliography for the project:

[1]     Lamačka, Pavel: 3S - A system for supporting the development and use of software. Technical Report 5/1984, VÚSEI-AR Bratislava, October 1984.

The formulation of research objectives for the next few years in the field of programming languages and environments. The block building approach is outlined.

[2]     Prívara, Igor et al: A programming environment for the development of specifications and programs II., (chapter 3.3). Research Report 77-87-VP/58, VÚSEI-AR Bratislava, April 1987.

A summary of the research done by the programming systems working group. Chapter 3.3 is devoted to results of the experimental implementation of the BB environment on PDP-11 compatible computers.

[3]     Lamačka, Pavel: Block Building Programming. Technical Report OPS-13/1988, VÚSEI-AR Bratislava, September 1988.

Refinement of initial objectives, the black-box concept as a basis for BB programming, an outline of graphical programming language.

[4]     Lamačka, Pavel: The Block Building Environment. Technical Report OPS-17/1988, VÚSEI-AR Bratislava, December 1988.

An outline of the new architecture of the BB Programming Environment. The transfer from minicomputers to personal computers.

[5]     Lamačka, Pavel: The BB Programming Environment (demonstration version 3.9). Bratislava, September 1991.

A demonstration version of the BB Programming Environment in its intermediate state: the user interface, the tools for BB design and the environment customization have been implemented.

[6]     Lamačka, Pavel: BBP 2007. Technical Report, HiSys Ltd. Bratislava, 2007.

This report is closely related to the BBPE information on HiSys.sk.

The reports [1,2,3,4] are written in Slovak, the BBPE experimental version 3.9 [5] and the report [6] are in English.

Note:
Any part or motif, which is unique to the BB Programming, its Environment or its Interface, may not be used in any other software product without the prior written consent of the author. If you have an interest in BBP or MKI, please contact me by e-mail.

Copyright © 1984-1991,2007 by Pavel Lamačka