home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / OB3.2D1.DMS / in.adf / ModulaToOberon / __headers__.txt next >
Encoding:
Text File  |  1992-10-15  |  3.8 KB  |  71 lines

  1.  
  2. N. Wirth
  3.  
  4. Abstract
  5.  
  6. The programming language Oberon is the result of a concentrated effort to
  7. increase the power of Modula-2 and simultaneously to reduce its complexity.
  8. Several features were eliminated, and a few were added in order to increase
  9. the expressive power and flexibility of the language. This paper describes
  10. and motivates the changes. The language is defined in a concise report.
  11.  
  12. Introduction
  13.  
  14. The programming language Oberon evolved from a project whose goal was the
  15. design of a modern, flexible, and efficient operating system for a
  16. single-user workstation. A principal guideline was to concentrate on
  17. properties that are genuinely essential and - as a consequence - to omit
  18. ephemeral issues. It is the best way to keep a system in hand, to make it
  19. understandable, explicable, reliable, and efficiently implementable.
  20.  
  21. Initially, it was planned to express the system in Modula-2 [1]
  22. (subsequently called Modula), as that language supports the notion of
  23. modular design quite effectively, and because an operating system has to be
  24. designed in terms of separately compilable parts with conscientiously
  25. chosen interfaces. In fact, an operating system should be no more than a
  26. set of basic modules, and the design of an application must be considered
  27. as a goal-oriented extension of that basic set: Programming is always
  28. extending a given system.
  29.  
  30. Whereas modern languages, such as Modula, support the notion of
  31. extensibility in the procedural realm, the notion is less well established
  32. in the domain of data types. In particular, Modula does not allow the
  33. definition of new data types as extensions of other, programmer-defined
  34. types in an adequate manner. An additional feature was called for, thereby
  35. giving rise to an extension of Modula.
  36.  
  37. The concept of the planned operating system also called for a highly
  38. dynamic, centralized storage management relying on the technique of garbage
  39. collection. Although Modula does not prevent the incorporation of a garbage
  40. collector in principle, its variant record feature constitutes a genuine
  41. obstacle. As the new facility for extending types would make the variant
  42. record feature superfluous, the removal of this stumbling block was a
  43. logical decision. This step, however, gave rise to a restriction (subset)
  44. of Modula.
  45.  
  46. It soon became clear that the rule to concentrate on the essential and to
  47. eliminate the inessential should not only be applied to the design of the
  48. new system, but equally stringently to the language in which the system is
  49. formulated. The application of the principle thus led from Modula to a new
  50. language. However, the adjective "new" has to be understood in proper
  51. context: Oberon evolved from Modula by very few additions and several
  52. subtractions. In relying on evolution rather than revolution we remain in
  53. the tradition of a long development that led from Algol to Pascal, then to
  54. Modula-2, and eventually to Oberon. The common traits of these languages
  55. are their procedural rather than functional model and the strict typing of
  56. data. Even more fundamental, perhaps, is the idea of abstraction: the
  57. language must be defined in terms of mathematical, abstract concepts
  58. without reference to any computing mechanism. Only if a language satisfies
  59. this criterion, can it be called "higher-level". No syntactic coating
  60. whatsoever can earn a language this attribute alone.
  61.  
  62. The definition of a language must be coherent and concise. This can only be
  63. achieved by a careful choice of the underlying abstractions and an
  64. appropriate structure combining them. The language manual must be
  65. reasonably short, avoiding the explanation of individual cases derivable
  66. from the general rules. The power of a formalism must not be measured by
  67. the length of its description. To the contrary, an overly lengthy
  68. definition is a sure symptom of inadequacy. In this respect, not complexity
  69. but simplicity must be the goal.
  70.  
  71.