Modula-2In Embedded Systems

Total Page:16

File Type:pdf, Size:1020Kb

Modula-2In Embedded Systems I Evaluating & Implementing Software Engineering . • Pressman, Roger S., Making Software Engineering Happen: A guide for instituting the technology, Prentice Hall, 1988. Pressman, Roger S., Software Engineering: A practitioner's approach, McGraw-Hili, 1987. MODULA-2IN J. Blank & M. J. Krijger, Software Engineering: Methods and techniques, Wiley-lnterscienc9. EMBEDDED SYSTEMS 1983. Yourdon, Edward, Managing the Structured Techniques: Strategies for Software Develop­ Christian Vetterli mentthe 1990s, Yourdon Press, 1988. HiwareAG Basel, Switzerland CASE Tools and Software Engineering Claude Vonlanthen Case, Albert F., Information Systems Development: PrinCiples of Software Engineering and HiwareAG object-oriented technology, Prentice-Hall, 1986. Basel, Switzerland Fisher, Alan S., object-oriented technology : Using Software Development Tools, Wiley, 1988. Christian Vetterli studied under Niklaus Wirth, writing his thesis on the object-oriented expandable document editor OPUS (Object-Oriented Gane, Chris, Computer-Aided Software Engineering: The methodologies, the products, the Publishing System) written in Modula 2. Dr. Vetterli is responsible for the future, Rapid Systems Development Inc., 1988. Modula-2 tool MacMETH (loader andlibraries for AppleMacintosh), libraries for Modula-2 development systems onIBM-RT(RISC),and thecode generator Humphrey, Watts, Managing the Software Process, Addison-Wesley, 1989. for the Modula-2 compiler. He is responsible for developing embedded systems software for Hiware. Marshall, George R., Systems Analysis and Design: Alternative Structured Approaches, Prentice-Hall, 1986. Claude Vonlanthen is responsible for applications software at Hiware. A graduate engineer from Eigenossische Technische Ilochschule, Zurich, McClure, Carma, CASE is Software Automation, Prentice Hall, 1988. Switzerland,Claude was responsible for developing a Modula-2 embedded system at a large machine factory before joining Hiware. McClure, Carma, The CASE Technical Report, Extended Intelligence Inc., 1988. Weaver, Audrey M., Using the Structured Techniques - A Case Study, Prentice-Hall, 1987. Copyright © 1991 by Foresite Systems Page 587 Page 586 Modula-2 in Embedded Systems 57 Fortran Algol 58 Dr. Christian Vetterli Claude Vonlanthen , 60 Algol 60 Lisp PART! I Cobol In the years 1977·1981 Prof. N. Wirth developed Modula-2 [1] as a further 62 member of the family of the Algol, Pascal and Modula progranlming languages APL (Fig. 1). "Whereas Pascal had been designed as a general purpose language and 64 , after implementation in 1970 has gained wide usage, Modula had emerged from Simula-l AIgol-W experiments in multiprograrruning and concentrated therefore on relevant aspects of ~ that field of application. 66 Basic t' ~ PL-l BCPL Simula ~7 In 1977, a research project with the goal of designing a computer system 68 ~# (hardware and software) in an integrated approach) was launched at the 1I1Stitut fur Algol 68 Infonnatik of the ETH ZUrich. This system (later to be caned Lilith [2]) \vas to be ~ ~ programnled in a single high-level language which therefore had to satisfy 70 B Fortran IV Pascal Prolog requirements of a high-level system design as well as those of low-level , programming of parts which interact closely with the given hardware. Modula-2 enlerged from careful design deliberations as a language which includes all aspects 72 C .-J of Pascal and extends them with the important module concept and with those of - Cone. mUltiprogramming. " 74 Pascal~ Some of the main features of Modula-2 are: Modula Mesa Euclid 76 ~ " " Fortran 77 • separate compilation of program modules, !' II~ • strong type checking, 78 • comprehensive runtime tests. ~ Modula-2 • structured data types, 80 Snlalltalk • dynamic data types, • nested program structures~ Ceder • procedure types, 82 • • the support of parallel processes (co-routines) and ~ • system-dependent language properties (low-level facilities). Ada 84 First of all, we turn our attention to the most important concept of Modula-2, the •• one which has also given the language its name - the modular concept. Then we 86 c++ ~, discuss briefly the other properties of Modula-2, especially with regard to ~ Modula..3 applications in Embedded Systems. Finally we present a approach of an operating Oberon system for distributed real-time applications and a related development method. 88 90 ! Oberon-2 Page 588 Programming Languages (based on lecture notes of Prof. N. Wirth and Prof. J. Gutkne.cht, ETH Ziirkh) Page 589 © 1991 by HIWARE A • Gundeldinge.rstrasse 432 • CH·4053 BasIc © 1991 by HIWARE AG - Gllndeldingerstrasse 432 ~ CH·4053 Basl~ d-.'. d_".d..-ol;' r Modula-2 in Embedded Systems 57 Fortran Algol 58 Dr. Christian Vetterli Claude Vonlanthen , 60 Algol 60 Lisp PART! I Cobol In the years 1977·1981 Prof. N. Wirth developed Modula-2 [1] as a further 62 member of the family of the Algol, Pascal and Modula progranlming languages APL (Fig. 1). "Whereas Pascal had been designed as a general purpose language and 64 , after implementation in 1970 has gained wide usage, Modula had emerged from Simula-l AIgol-W experiments in multiprograrruning and concentrated therefore on relevant aspects of ~ that field of application. 66 Basic t' ~ PL-l BCPL Simula ~7 In 1977, a research project with the goal of designing a computer system 68 ~# (hardware and software) in an integrated approach) was launched at the 1I1Stitut fur Algol 68 Infonnatik of the ETH ZUrich. This system (later to be caned Lilith [2]) \vas to be ~ ~ programnled in a single high-level language which therefore had to satisfy 70 B Fortran IV Pascal Prolog requirements of a high-level system design as well as those of low-level , programming of parts which interact closely with the given hardware. Modula-2 enlerged from careful design deliberations as a language which includes all aspects 72 C .-J of Pascal and extends them with the important module concept and with those of - Cone. mUltiprogramming. " 74 Pascal~ Some of the main features of Modula-2 are: Modula Mesa Euclid 76 ~ " " Fortran 77 • separate compilation of program modules, !' II~ • strong type checking, 78 • comprehensive runtime tests. ~ Modula-2 • structured data types, 80 Snlalltalk • dynamic data types, • nested program structures~ Ceder • procedure types, 82 • • the support of parallel processes (co-routines) and ~ • system-dependent language properties (low-level facilities). Ada 84 First of all, we turn our attention to the most important concept of Modula-2, the •• one which has also given the language its name - the modular concept. Then we 86 c++ ~, discuss briefly the other properties of Modula-2, especially with regard to ~ Modula..3 applications in Embedded Systems. Finally we present a approach of an operating Oberon system for distributed real-time applications and a related development method. 88 90 ! Oberon-2 Page 588 Programming Languages (based on lecture notes of Prof. N. Wirth and Prof. J. Gutkne.cht, ETH Ziirkh) Page 589 © 1991 by HIWARE A • Gundeldinge.rstrasse 432 • CH·4053 BasIc © 1991 by HIWARE AG - Gllndeldingerstrasse 432 ~ CH·4053 Basl~ d-.'. d_".d..-ol;' r The modular concept Modules in Modula-2 " The language Modula-2 supports the above-described model thanks to a strict The concept of the module has long been in use in the engineering field. \Ve find it separation of interface and implementation of a module. A distinction is made for example in the implementation of electronic devices where we find slide-in between the definition of the interface (definition modules) and the implementation modules which contain complete functional units. The advantages are obvious, the (implementation module). A module can export both procedures as well as types modules can be developed, produced, tested and even repaired as self-contained and variables, i.e. make them available to other modules. Each module, in tum, can units. The use of modules also enables substantially reduced costs because it is import objects from other modules. The defmition of the interface contains all the possible to refer to proved solutions for certain functions. procedures and data types which the module exports. Procedures are described by The same motivations which promoted the introduction of modules in the procedure head, type and variables are described by a declaration. When the engineering also apply in the field of software development. Because, today. defmition module is translated, a so-called symbol file is created which contains all software is no longer created by an elite group of programming wizards, but wit.~in the infonnation about the interface. The symbol file is used for the compilation of an industrial framework, it is absolutely essential to produce the software in a modules which use the interface. The implementation of the procedures listed in the properly structured and modularized fonn. interface takes place in the implementation module. It can be developed independently of the interface, but must comply with the specifications laid down in A certain amount of modularization is already to be found in most commonly the interface. This means in particular that it is very easy to prepare different used programming languages in the procedure. Procedures already enable a implementations for the same interface. Thus, machine-dependent pans of a larger problem to be subdivided into smaller part problems. The parameter mechanism program can also be readily combined in one place. This pennits simple extraction permits an exact specification of the interface for
Recommended publications
  • Language-Level Support for Exploratory Programming of Distributed Virtual Environments
    In Proc ACM UIST ‘96 (Symp. on User Interface Software and Technology), Seattle, WA, November 6–8, 1996, pp. 83–94. Language-Level Support for Exploratory Programming of Distributed Virtual Environments Blair MacIntyre and Steven Feiner Department of Computer Science, Columbia University, New York, NY, 10027 {bm,feiner}@cs.columbia.edu http://www.cs.columbia.edu/~{bm,feiner} Abstract resulted in an unmanageable welter of client-server relation- ships, with each of a dozen or more processes needing to We describe COTERIE, a toolkit that provides language- create and maintain explicit connections to each other and to level support for building distributed virtual environments. handle inevitable crashes. COTERIE is based on the distributed data-object paradigm for distributed shared memory. Any data object in COTE- We spent a sufficiently large portion of our time reengineer- RIE can be declared to be a Shared Object that is replicated ing client-server code that it became clear to us that our fully in any process that is interested in it. These Shared implementation of the client-server model was unsuitable Objects support asynchronous data propagation with atomic for exploratory programming of distributed research proto- serializable updates, and asynchronous notification of types. The heart of the problem, as we saw it, was a lack of updates. COTERIE is built in Modula-3 and uses existing support for data sharing that was both efficient and easy for Modula-3 packages that support an integrated interpreted programmers to use in the face of frequent and unantici- language, multithreading, and 3D animation. Unlike other pated changes.
    [Show full text]
  • ETH Eidgenossische Technische Hochschule Zurich H.Eberle
    ETH Eidgenossische lnstitut Technische fur lnformatik Hochschule ZUrich H.Eberle Hardware Description of the Workstation Ceres 11nuar 1987 ,70 70 . 61 .10 ETH Eidgenossische lnstitut Technische fur lnformatik Hochschule Zurich Eidrg. ~hn. ZI!rich lrricrm!!~!~:.~~lb;i::1H1a-k ETH~Zentrum CH..oo92 Zurich H.Eberle Hardware Description of the Workstation Ceres EidQ. lechn. He:ch'?~h'Jle Zilr\J::;!-: lnforme::!':.uib~iuthek El'l I-lei ili rn 11 CH-8002 ZOrtch gl,4-,23 Address of the author: lnstitut fiJr lnformatik ETH-Zentrum CH-8092 Zurich I Switzerland © 1987 lnstitut tor lnformatik, ETH Zurich 1 Hardware Description of the Workstation Ceres H.Eberle Abstract Ceres is a single-user computer based on the 32-bit microprocessor NS32000. The processor is oriented to the use of high-level languages. The hardware design concentrates on simplicity and modularity. The key features are the arbitrated memory bus and the high resolution bitmapped graphics display which promotes the attractivity of a programming workstation. This paper documents the hardware of the Ceres computer. 2 Contents 1 Introduction 3 2 Hardware Structure 4 2.1 Processor 4 2.2 Primary Memory 4 2.3 Secondary Memory 4 2.4 Input/Output Devices 4 3 Hardware Implementation 6 3.1 Processor Board 6 3.1.1 Processor 6 3.1.2 Memory Bus Arbiter 9 3.1.3 Boot ROM and Standard Input/Output Devices 12 3.2 Memory Board 15 3.3 Display Controller Board 18 3.3.1 Display Memory 18 3.3.2 Display Refresh Controller 19 3.4 Disk Controller Board 23 3.5 Motherboard 23 4 Hardware Extensions 24 References 26 Appendices A Circuit Diagrams 28 A.1 Processor Board 28 A.2 Memory Board 35 A.3 Display Controller Board 37 B PAL Design Specifications 42 c Interface Connectors 47 C.1 Processor Board 47 C.2 Display Controller Board 48 C.3 Motherboard 48 3 1 Introduction Todays working tools of a software engineer at the lnstitut fUr lnformatik of ETH ZOrich are the programming language Modula-2 [1] and the workstation computer Lilith [2].
    [Show full text]
  • The Zonnon Project: a .NET Language and Compiler Experiment
    The Zonnon Project: A .NET Language and Compiler Experiment Jürg Gutknecht Vladimir Romanov Eugene Zueff Swiss Fed Inst of Technology Moscow State University Swiss Fed Inst of Technology (ETH) Computer Science Department (ETH) Zürich, Switzerland Moscow, Russia Zürich, Switzerland [email protected] [email protected] [email protected] ABSTRACT Zonnon is a new programming language that combines the style and the virtues of the Pascal family with a number of novel programming concepts and constructs. It covers a wide range of programming models from algorithms and data structures to interoperating active objects in a distributed system. In contrast to popular object-oriented languages, Zonnon propagates a symmetric compositional inheritance model. In this paper, we first give a brief overview of the language and then focus on the implementation of the compiler and builder on top of .NET, with a particular emphasis on the use of the MS Common Compiler Infrastructure (CCI). The Zonnon compiler is an interesting showcase for the .NET interoperability platform because it implements a non-trivial but still “natural” mapping from the language’s intrinsic object model to the underlying CLR. Keywords Oberon, Zonnon, Compiler, Common Compiler Infrastructure (CCI), Integration. 1. INTRODUCTION: THE BRIEF CCI and b) to experiment with evolutionary language HISTORY OF THE PROJECT concepts. The notion of active object was taken from the Active Oberon language [Gut01]. In addition, two This is a technical paper presenting and describing new concurrency mechanisms have been added: an the current state of the Zonnon project. Zonnon is an accompanying communication mechanism based on evolution of the Pascal, Modula, Oberon language syntax-oriented protocols , borrowed from the Active line [Wir88].
    [Show full text]
  • MODULA a Language for Modular Multiprogramming, Wirth, 1976
    Research Collection Report MODULA a language for modular multiprogramming Author(s): Wirth, Niklaus Publication Date: 1976 Permanent Link: https://doi.org/10.3929/ethz-a-000199440 Rights / License: In Copyright - Non-Commercial Use Permitted This page was generated automatically upon download from the ETH Zurich Research Collection. For more information please consult the Terms of use. ETH Library ~ idgenöss · ische ·Institut T echnisc ~he für. Hochschule Informatik Zürich MODULA: A language formodular multiprogramming ~~8rz 1976 18 ~ ., ' , „· Eidgenössische Institut Technische für Hochschule Informatik Zürich Niklaus Wirth MODULA: A language formodular multiprogramming - 1 - N .Wirth Abstract This paper defines a language called Modula, which is intended primarily for programming dedicated computer systems, including process control systems on smaller machines. The language is largely based on Pascal, but in addition to conventional block ) structure it introduces a so - called module structure . A module is a set of procedures, data types, and variables, where the programmer has precise control over the names that are imported from and exported to the environment. Modula includes general multiprocessing facilities, namely processes , interfacp, modules, and Signals . It also allows the specification of facilities that represent a computer ' s specific peripheral devices . Those given in this paper pertain to the PDP - 11. Author ' s address: Institut für Informatik , ETH , CH-8092 Zürich - 2 - Coaten ts 1. Introduction 3 2. 0 verview 5 3. Notation for syotactic description 10 4. Language vocabulary and representation 10 5. Facilities for sequential programmiog 12 1. Constant declarations 12 2. Type declarations 12 1 • Basic types 13 2. E n um e ratio n s 13 3.
    [Show full text]
  • Javascript and OOP Once Upon a Time
    11/14/18 JavaScript and OOP Once upon a time . Jerry Cain CS 106AJ November 12, 2018 slides courtesy of Eric Roberts Object-Oriented Programming The most prestigious prize in computer science, the ACM Turing Award, was given in 2002 to two Norwegian computing pioneers, who jointly developed SIMULA in 1967, which was the first language to use the object-oriented paradigm. JavaScript and OOP In addition to his work in computer Kristen Nygaard science, Kristen Nygaard also took Ole Johan Dahl an active role in making sure that computers served the interests of workers, not just their employers. In 1990, Nygaard’s social activism was recognized in the form of the Norbert Wiener Award for Social and Professional Responsibility. Review: Clients and Interfaces David Parnas on Modular Development • Libraries—along with programming abstractions at many • David Parnas is Professor of Computer other levels—can be viewed from two perspectives. Code Science at Limerick University in Ireland, that uses a library is called a client. The code for the library where he directs the Software Quality itself is called the implementation. Research LaBoratory, and has also taught at universities in Germany, Canada, and the • The point at which the client and the implementation meet is United States. called the interface, which serves as both a barrier and a communication channel: • Parnas's most influential contriBution to software engineering is his groundBreaking 1972 paper "On the criteria to be used in decomposing systems into modules," which client implementation laid the foundation for modern structured programming. This paper appears in many anthologies and is available on the web at interface http://portal.acm.org/citation.cfm?id=361623 1 11/14/18 Information Hiding Thinking About Objects Our module structure is based on the decomposition criteria known as information hiding.
    [Show full text]
  • Niklaus Wirth—A Pioneer of Computer Science 1
    Niklaus Wirth—A Pioneer of Computer Science 1 Niklaus Wirth — a Pioneer of Computer Science Gustav Pomberger, Hanspeter Mössenböck, Peter Rechenberg Johannes Kepler University of Linz [email protected], [email protected], [email protected] Abstract Niklaus Wirth is one of the most influential scientists of the early computer age. His ideas and especially his programming languages have shaped gen- erations of programmers worldwide. This paper tries to acknowledge the scientific achievements of Niklaus Wirth and to honor him as a person. A small part of the paper is also devoted to Wirth's influence on computer sci- ence at the Johannes Kepler University of Linz. 1 Introduction Ask computer specialists anywhere—be it in Europe or America, in Asia or Australia—who the most important computer scientists in the world are, and you can bet that the name Niklaus Wirth will be on every list. Ask programming language experts about the person with the greatest influence on the development of programming languages, and they would agree on Niklaus Wirth. Ask students, teachers and computer hobbyists about the most important programming lan- guages, and you can be sure that even today Pascal will be on every list. Finally, examine the literature of computer science in the elite circle of books with the greatest number of copies printed, the widest distribution, and the most transla- tions, and you will find books by Niklaus Wirth, especially the prominent book on Pascal. These few examples show that professor Niklaus Wirth is one of the world's leading computer scientists.
    [Show full text]
  • Extensibility in the Oberon System
    Nordic Journal of Computing 1(1994), 77{93. EXTENSIBILITY IN THE OBERON SYSTEM HANSPETER MOSSENB¨ OCK¨ ∗ Institute for Computer Systems ETH Zurich¨ CH{8092 Zurich¨ Switzerland Abstract. We show how an object-oriented system-and in particular the Oberon System-can be used to write software that is extensible by end users even while the software is running. Extensibility instead of completeness may be a way out of the unpleasant situation in software industry where applications still tend to become bigger every year. Oberon is both an object-oriented programming language and an operating system with new concepts such as commands and dynamic loading. The language and the system make up an environment that is similar to Smalltalk in its flexibility but offers static type-checking and is much more efficient. CR Classification: D.2.2, D.1.5 1. Introduction Ambitious software systems with large functionality and thousands of users can hardly be designed in a form that meets all future needs from the be- ginning. It is impossible to foresee all the ways in which such systems will be used so that requests for extensions will arise naturally. Current software industry tries to cope with this problem by including as many features as possible into a software system. This leads to huge monolithic software that offers amazing functionality but still leaves some users disappointed because it typically lacks just their favorite feature. The opposite approach is to design a system only as a minimal kernel and to provide means to extend it. This allows vendors and even users to add more functionality later without bothering other users which do not need it.
    [Show full text]
  • Chapter 4: PHP Fundamentals Objectives: After Reading This Chapter You Should Be Entertained and Learned: 1
    Chapter 4: PHP Fundamentals Objectives: After reading this chapter you should be entertained and learned: 1. What is PHP? 2. The Life-cycle of the PHP. 3. Why PHP? 4. Getting Started with PHP. 5. A Bit About Variables. 6. HTML Forms. 7. Building A Simple Application. 8. Programming Languages Statements Classification. 9. Program Development Life-Cycle. 10. Structured Programming. 11. Object Oriented Programming Language. 4.1 What is PHP? PHP is what is known as a Server-Side Scripting Language - which means that it is interpreted on the web server before the webpage is sent to a web browser to be displayed. This can be seen in the expanded PHP recursive acronym PHP-Hypertext Pre-processor (Created by Rasmus Lerdorf in 1995). This diagram outlines the process of how PHP interacts with a MySQL database. Originally, it is a set of Perl scripts known as the “Personal Home Page” tools. PHP 4.0 is released in June 1998 with some OO capability. The core was rewritten in 1998 for improved performance of complex applications. The core is rewritten in 1998 by Zeev and Andi and dubbed the “Zend Engine”. The engine is introduced in mid 1999 and is released with version 4.0 in May of 2000. Version 5.0 will include version 2.0 of the Zend Engine (New object model is more powerful and intuitive, Objects will no longer be passed by value; they now will be passed by reference, and Increases performance and makes OOP more attractive). Figure 4.1 The Relationship between the PHP, the Web Browser, and the MySQL DBMS 4.2 The Life-cycle of the PHP: A person using their web browser asks for a dynamic PHP webpage, the webserver has been configured to recognise the .php extension and passes the file to the PHP interpreter which in turn passes an SQL query to the MySQL server returning results for PHP to display.
    [Show full text]
  • System Construction
    System Construction Autumn Semester 2017 ETH Zürich Felix Friedrich 1 Goals . Competence in building custom system software from scratch . Understanding of „how it really works“ behind the scenes across all levels . Knowledge of the approach of fully managed lean systems A lot of this course is about detail. A lot of this course is about bare metal programming. 2 Course Concept . Discussing elaborated case studies . In theory (lectures) . and practice (hands-on lab) . Learning by example vs. presenting topics 3 Prerequisite . Knowledge corresponding to lectures Systems Programming and/or Operating Systems . Do you know what a stack-frame is? . Do you know how an interrupt works? . Do you know the concept of virtual memory? . Good reference for recapitulation: Computer Systems – A Programmer's Perspective 4 Links . SVN repository https://svn.inf.ethz.ch/svn/lecturers/vorlesungen/trunk/syscon/2017/shared . Links on the course homepage http://lec.inf.ethz.ch/syscon 5 Background: Co-Design @ ETH Languages (Pascal Family) +MathOberon Active Modula Oberon ActiveOberon Cells Oberon07 Zonnon Operating / Runtime Systems Medos Oberon Aos A2 SoC HeliOs Minos LockFree Kernel Hardware x86 / IA64/ ARM TRM Lilith Ceres Emulations on (FPGA) Unix / Linux RISC (FPGA) 1980 1990 2000 2010 6 Course Overview Part1: Contemporary Hardware Case Study 1. Minos: Embedded System . Safety-critical and fault-tolerant monitoring system . Originally invented for autopilot system for helicopters . Topics: ARM Architecture, Cross-Development, Object Files and Module Loading, Basic OS Core Tasks (IRQs, MMUs etc.), Minimal Single-Core OS: Scheduling, Device Drivers, Compilation and Runtime Support. With hands-on lab on Raspberry Pi (2) 7 Course Overview Part1: Contemporary Hardware Case Study 2.
    [Show full text]
  • Warum Unix-Ports Pascal Bis Oberon in Der Bremer Informatik
    Warum Unix-Ports Pascal bis Oberon in der Bremer Informatik Günter Feldmann Universität Bremen [email protected] 1970th, Dept. of Electrical Engineering ● 1974/75: first university computer CII-Honeywell Bull, IRIS-80 ● first Pascal port from a university in Paris. ● learned Pascal by reading the compiler sources ● engineers needed 64-bit REALS, compiler got modified accordingly ● compiling and linking the compiler took 2 days ● N. Wirth: Systematisches Programmieren Since 1981, Dept. of Mathematics and Computer Science ● first personal computers: DEC PDT 11 ● PDP11 instruction set, but some instructions were missing, these had to be emulated in software as the interpreters and compilers used them. ● UCSD Pascal and some times a Modula (not Modula-2) compiler under RT11. ● Small local area network via V24 connections Computer Science ● A series of different computers ● DEC PDP11/44, BSD Unix ● DEC VAX 750 with 8 VT100 terminals, BSD Unix ● 30 Atari 520 ST (M6800) ● 20 Sun3 Workstations (M6820) ● all machines were equipped with Pascal and/or Modula-2 compilers ● Some machines (Pascal Microengine, PERQ) were microprogrammed for Pascal (p-code, Q- code) Computer Science ● workstation pool for students ● 30 machines (1986), 100 machines today ● in the beginning of 1990th we acquired Sun4 workstations (SPARC). No Modula-2 compiler! ● ETHZ released the SPARC Oberon system hosted by SunOS. This system was used in the course “Software Projekt” until 1996. Then “Java” came … ● programming courses got replaced by courses in “internet programming” Keeping Oberon alive on our hardware ● OS change: SunOS (BSD) to Solaris (SYSVR4) ● despite binary compatibility SPARC Oberon failed. Oberon compiler used registers reserved for usage by the system.
    [Show full text]
  • Data Abstraction and Encapsulation ADT Example
    Data Abstraction and Encapsulation Definition: Data Encapsulation or Information Hiding is the concealing of the implementation details of a data object Data Abstraction from the outside world. Definition: Data Abstraction is the separation between and the specification of a data object and its implementation. Definition: A data type is a collection of objects and a set Encapsulation of operations that act on those objects. Definition: An abstract data type (ADT) is a data type that is organized in such a way that the specification of the objects and the specification of the operations on the objects is separated from the representation of the objects and the implementation of the operations. 1 2 Advantages of Data Abstraction and Data Encapsulation ADT Example ADT NaturalNumber is Simplification of software development objects: An ordered sub-range of the integers starting at zero and ending at the maximum integer (MAXINT) on the computer. Testing and Debugging functions: for all x, y belong to NaturalNumber; TRUE, FALSE belong to Boolean and where +, -, <, ==, and = are the usual integer operations Reusability Zero(): NaturalNumber ::= 0 Modifications to the representation of a data IsZero(x): Boolean ::= if (x == 0) IsZero = TRUE else IsZero = FALSE type Add(x, y): NaturalNumber ::= if (x+y <= MAXINT) Add = x + y else Add = MAXINT Equal(x, y): Boolean ::= if (x == y) Equal = TRUE else Equal = FALSE Successor(x): NaturalNumber ::= if (x == MAXINT) Successor = x else Successor = x +1 Substract(x, y): NaturalNumber ::= if (x <
    [Show full text]
  • A Modula-2 Oriented Operating System for the Personal Computer Lilith
    Diss. ETH No. 7346 Medos-2: A Modula-2 Oriented Operating System for the Personal Computer Lilith A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of Technical Sciences presented by SVEND ERIK KNUDSEN Dipl. Phys. ETH born October 19,1947 citizen of Thalwil (Zurich) accepted to the recommendation of Prof. Dr. N. Wirth, examiner Prof. Dr. C.A. Zehnder, co-examiner Zurich 1983 C 1983 by Svend Erik Knudsen, Grundsteinstr. 2, CH-8804 Au/ZH Preface In the fall of 1977, Prof. N. Wirth started an integrated hardware and software project aiming at the construction of a modern personal computer, a highly desirable tool for the creative software engineer. The principal parts of the so-called Lilith project were the design of the programming language Modula-2 and the construction of a multipass compiler for it, the design of a suitable machine architecture for the execution of compiled programs, the design and construction of a computer capable of efficiently interpreting the defined machine architecture and equipped with the desired peripheral devices, the design and the implementation of the single-user operating system Medos-2, the development of modern text and graphic editors taking full advantage of the computer's capabilities, and the development of a whole range of utility programs and library modules supporting the preparation of documents and the development of programs. After successful prototyping a series of 20 computers was built. During the first year of the project, I was mainly involved in the programming language part of the project.
    [Show full text]