The Modula-3 Type System
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Rapid Application Development Software | Codegear RAD Studio
RAD Studio 2010 Product Review Guide August 2009 Corporate Headquarters EMEA Headquarters Asia-Pacific Headquarters 100 California Street, 12th Floor York House L7. 313 La Trobe Street San Francisco, California 94111 18 York Road Melbourne VIC 3000 Maidenhead, Berkshire Australia SL6 1SF, United Kingdom RAD Studio 2010 Reviewer Guide TABLE OF CONTENTS Table of Contents ............................................................................................................................ - 1 - Introduction ...................................................................................................................................... - 3 - General Overview of RAD Studio 2010 ...................................................................................... - 3 - What is New in RAD Studio 2010 ............................................................................................... - 3 - A Word on Delphi Prism ............................................................................................................. - 6 - Prerequisites ................................................................................................................................ - 7 - Minimum System Requirements ................................................................................................. - 7 - Internationalizations .................................................................................................................... - 7 - Editions ........................................................................................................................................ -
RPC Broker 1.1 Deployment, Installation, Back-Out, and Rollback Ii May 2020 (DIBR) Guide
RPC Broker 1.1 Deployment, Installation, Back-Out, and Rollback (DIBR) Guide May 2020 Department of Veterans Affairs (VA) Office of Information and Technology (OIT) Enterprise Program Management Office (EPMO) Revision History Documentation Revisions Date Revision Description Authors 05/05/2020 8.0 Tech Edits based on the Broker REDACTED Development Kit (BDK) release with RPC Broker Patch XWB*1.1*71: • Changed all references throughout to “Patch XWB*1.1*71” as the latest BDK release. • Updated the release date in Section 3. • Updated all project dates in Table 4. • Added a “Skip This Step” note in Section 4.3.2. • Updated “Disclaimer” note in Section 4.8. • Added “Skip Step ” disclaimer to Section 4.8.1. • Deleted Sections 4.8.1.3, 4.8.1.3.1, and 4.8.1.3.2, since there are no VistA M Server routines installed with RPC Broker Patch XWB*1.1*71. • Updated Section 4.8.2.1.4; deleted Figure 3, “Sample Patch XWB*1.1*71 Installation Dialogue (Test System),” since there are no VistA M Server routines installed with RPC Broker Patch XWB*1.1*71. • Updated Section 5.2; Added content indicating install is only on Programmer-Only workstations. • Updated Section 5.6.1; added a “Skip Step” disclaimer and deleted Figure 9, “Restoring VistA M Server Files from a Backup Message,” since there are no VistA M Server routines RPC Broker 1.1 Deployment, Installation, Back-Out, and Rollback ii May 2020 (DIBR) Guide Date Revision Description Authors installed with RPC Broker Patch XWB*1.1*71. -
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. -
Type Extensions, Wirth 1988
Type Extensions N. WIRTH lnstitut fijr Informatik, ETH, Zurich Software systems represent a hierarchy of modules. Client modules contain sets of procedures that extend the capabilities of imported modules. This concept of extension is here applied to data types. Extended types are related to their ancestor in terms of a hierarchy. Variables of an extended type are compatible with variables of the ancestor type. This scheme is expressed by three language constructs only: the declaration of extended record types, the type test, and the type guard. The facility of extended types, which closely resembles the class concept, is defined in rigorous and concise terms, and an efficient implementation is presented. Categories and Subject Descriptors: D.3.3 [Programming Languages]: Language Constructs-data types and structures; modules, packuges; D.3.4 [Programming Languages]: Processors-code generation General Terms: Languages Additional Key Words and Phrases: Extensible data type, Modula-2 1. INTRODUCTION Modern software development tools are designed for the construction of exten- sible systems. Extensibility is the cornerstone for system development, for it allows us to build new systems on the basis of existing ones and to avoid starting each new endeavor from scratch. In fact, programming is extending a given system. The traditional facility that mirrors this concept is the module-also called package-which is a collection of data definitions and procedures that can be linked to other modules by an appropriate linker or loader. Modern large systems consist, without exception, of entire hierarchies of such modules. This notion has been adopted successfully by modern programming languages, such as Mesa [4], Modula-2 [8], and Ada [5], with the crucial property that consistency of interfaces be verified upon compilation of the source text instead of by the linking process. -
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]. -
Differences Between Oberon and Oberon–2
Oberon2.Differences.Text (20 Jul 93) 0 Differences between Oberon and Oberon–2 H. Mössenböck, N. Wirth Institut für Computersysteme, ETH Zürich Oberon–2 is a true extension of Oberon [1]. This paper summarizes the extensions and tries to shed some light on the motivations behind them. By that we hope to make it easier for the reader to classify Oberon–2. For details the reader is referred to the language report. One important goal for Oberon–2 was to make object–oriented programming easier without sacrificing the conceptual simplicity of Oberon. After three years of using Oberon and its experimental offspring Object Oberon [2] we merged our experiences into a single refined version of Oberon. The new features of Oberon–2 are type–bound procedures, read–only export of variables and record fields, open arrays as pointer base types, and a with statement with variants. The for statement is reintroduced after having been eliminated in the step from Modula–2 to Oberon. Oberon–2 is the result of many discussions among all members of the Institute for Computer Systems at ETH. It is particularly influenced by the ideas of Jürg Gutknecht and Josef Templ. Type–bound procedures Procedures can be bound to a record (or a pointer) type. They are equivalent to methods in object–oriented terminology. The binding is expressed by a separate parameter (the operand to which the procedure is applicable, or the "receiver" as it is called in object–oriented terminology). TYPE Figure = POINTER TO FigureDesc; FigureDesc = RECORD x, y, w, h: INTEGER END; PROCEDURE (f: Figure) Draw; BEGIN .. -
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. -
Object Pascal Language Guide
Object Pascal Language Guide Borland® Object Pascal Borland Software Corporation 100 Enterprise Way, Scotts Valley, CA 95066-3249 www.borland.com Borland Software Corporation may have patents and/or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents. COPYRIGHT © 1983, 2002 Borland Software Corporation. All rights reserved. All Borland brand and product names are trademarks or registered trademarks of Borland Software Corporation. Other brand and product names are trademarks or registered trademarks of their respective holders. Printed in the U.S.A. ALP0000WW21000 1E0R0102 0203040506-9 8 7654321 D3 Contents Chapter 1 Qualified identifiers . 4-2 Introduction 1-1 Reserved words . 4-3 Directives. 4-3 What’s in this manual? . 1-1 Numerals. 4-4 Using Object Pascal . 1-1 Labels . 4-4 Typographical conventions . 1-2 Character strings . 4-4 Other sources of information . 1-2 Comments and compiler directives. 4-5 Software registration and technical support . 1-3 Expressions . 4-5 Part I Operators. 4-6 Arithmetic operators . 4-6 Basic language description Boolean operators . 4-7 Logical (bitwise) operators . 4-8 Chapter 2 String operators . 4-9 Overview 2-1 Pointer operators. 4-9 Program organization . 2-1 Set operators . 4-10 Pascal source files . 2-1 Relational operators . 4-11 Other files used to build applications . 2-2 Class operators. 4-12 Compiler-generated files . 2-3 The @ operator . 4-12 Example programs. 2-3 Operator precedence rules . 4-12 A simple console application . 2-3 Function calls . 4-13 A more complicated example . -
Essential Pascal
Marco Cantù Essential Pascal 2nd Edition, March 2003 (version 2.01) APOLLO, THE GOD WORSHIPED AT DELPHI, IN AN ITALIAN 17TH CENTURY FRESCO. Essential Pascal [Copyright 1995-2003 Marco Cantù] www.marcocantu.com/epascal 1 Introduction he first few editions of Mastering Delphi, the best selling Delphi book I've written, provided an introduction to the Pascal language in Delphi. Due to space constraints and T because many Delphi programmers look for more advanced information, in the latest edition this material was completely omitted. To overcome the absence of this information, I've started putting together this ebook, titled Essential Pascal. This is a detailed book on Pascal, which for the moment will be available for free on my web site (I really don't know what will happen next, I might even find a publisher). This is a work in progress, and any feedback is welcome. The first complete version of this book, dated July '99, has been published on the Delphi 5 Companion CD. Note to the Second Edition After a few years (in the early 2003), the book had a complete revision, trying to refocus it even more on the core features of the Pascal language. Alongside, the book covers the language from the perspective of the Delphi for Windows programmer, but also of the Kylix and Delphi for .NET programmer. Differences among these different versions of the language will be mentioned. This change in focus (not only Delphi with the VCL library) was another reason to change most of the examples from visual ones to console based ones – something I plan doing but that I still haven't done. -
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. -
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. -
Towards Mathix / Math-X, a Computer Algebra Language That Can Create Its Own Operating System, and That Is Amazingly User- Friendly and Secure
Towards Mathix / Math-x, a computer algebra language that can create its own operating system, and that is amazingly user- friendly and secure Thomas Colignatus, August 19 2009, some clarifications August 23 2009 http://www.dataweb.nl/~cool Summary Given the current supply and demand for computer languages and systems, there is a clear window of opportunity for the software community to collaborate and create Mathix and Math-x. The base would be Oberon, which itself derives from Algol / Pascal / Modula and which is better designed than Unix / Linux, and which now has the system Bluebottle / A2 at http://bluebottle.ethz.ch. Mathix is defined as Oberon/A2 extended with a suitable computer algebra language (say, CAL). Math-x is defined as Minix ported to Oberon/A2 (via Cyclone) and extended with that CAL. Mathix and Math-x thus can create their own OS. Mathix and Math-x are flexible in that they contain both a strongly typed dialect relevant for OS creation (current Oberon) and a more flexible dialect relevant for the human user (CAL, to be created). The dialects have much syntax in common but the CAL allows more flexibility. The CAL is internally translated into Oberon/A2 which allows compilation as well. 2 2009-08-23-Math-x.nb Note This paper is best understood in the context of my book Elegance with Substance on mathematics education - see http://www.dataweb.nl/~cool/Papers/Math/Index.html. My book advises that each national parliament investigates the stagnation in doing mathematics on the computer in school. This paper suggests how the software community might anticipate on common sense conclusions and start working on improvement.