| ||
Tutorial: The Conceptual Framework |
A little bit about navigationThis tutorial is about the gbeta language. If you are looking for information about the practical usage of gbeta, such as the interaction commands, help facilities, or the integration with Emacs, take a look at the Getting Started section. If you look in here and don't find what you are looking for, try the general BETA Tutorials. Those tutorials are somewhat oriented towards the Mjolner BETA System implementation and will give some advice which does not apply to gbeta, but the vast majority of truths (except for the restrictions ;-) which can be said about the language BETA also apply to the gbeta language. If you already know BETA and just want to discover how the gbeta language differs from BETA, then take a look at the section about compatibility issues, and at the section about the language enhancements made on the way from BETA to gbeta. The conceptual framework behind BETABETA has always had a rich philosophical foundation, providing a deep explanation of and motivation for the object-oriented perspective on system development, and to the design of object-oriented programming languages. To learn more about this, look into chapter 18 of
Here, we'll just mention some important concepts, briefly, starting with a quote from the above mentioned BETA Language Tutorial, p.8:
Starting from the concept of a system, which is a portion of the world that somebody chooses to view as a whole, built from a number of interacting components, and continuing with the concept of an information process, which is a perspective on a process that emphasizes the information content and its transformations over time, a BETA program execution may be described as an information process considered as a system which is a physical model of some real world process. In other words, what happens in the computer is actually a physical process, and this process is analogous to what happens in the real world, focusing on the application domain and choosing some perspective on this application domain. This establishes the modeling relation between programs and selected parts of the real world as crucial, and that is the kernel of object-orientation from a BETA perspective. The fact that many programming languages use constructs like inheritance, polymorphism, genericity, encapsulation and whatnot is just a technicality which might change as soon as other technical means for supporting the "physical model" perspective emerge. Enough philoso-babble ;-) The tutorial about the concrete language starts on the next page! By the way: just about every reference to the programming language in the tutorial should be "BETA and/or gbeta" since the material presented applies to both, but the references are just given as "gbeta" unless there is a special reason to distinguish. |