Results 1 -
8 of
8
Engineering a Programming Language: The Type and Class System of Sather
- Programming Languages and System Architectures
, 1994
"... Sather 1.0 is a programming language whose design has resulted from the interplay of many criteria. It attempts to support a powerful object-oriented paradigm without sacrificing either the computational performance of traditional procedural languages or support for safety and correctness checking. ..."
Abstract
-
Cited by 44 (5 self)
- Add to MetaCart
Sather 1.0 is a programming language whose design has resulted from the interplay of many criteria. It attempts to support a powerful object-oriented paradigm without sacrificing either the computational performance of traditional procedural languages or support for safety and correctness checking. Much of the engineering effort went into the design of the class and type system. This paper describes some of these design decisions and relates them to approaches taken in other languages. We particularly focus on issues surrounding inheritance and subtyping and the decision to explicitly separate them in Sather. ICSI, E-mail: szyper@icsi.berkeley.edu. y ICSI, E-mail: om@icsi.berkeley.edu. z ICSI and Eidgenossische Technische Hochschule (ETH), Zurich, Switzerland. E-mail: murer@icsi.berkeley.edu. ii 1 Introduction Sather is an object-oriented language developed at the International Computer Science Institute [22]. It has a clean and simple syntax, parameterized classes, object-o...
pSather: Layered Extensions to an Object-Oriented Language for Efficient Parallel Computation
, 1993
"... pSather is a parallel extension of the existing object-oriented language Sather. It offers a shared-memory programming model which integrates both control- and dataparallel extensions. This integration increases the flexibility of the language to express different algorithms and data structures, esp ..."
Abstract
-
Cited by 31 (2 self)
- Add to MetaCart
pSather is a parallel extension of the existing object-oriented language Sather. It offers a shared-memory programming model which integrates both control- and dataparallel extensions. This integration increases the flexibility of the language to express different algorithms and data structures, especially on distributed-memory machines (e.g. CM-5). This report describes our design objectives and the programming language pSather in detail. ICSI and Eidgenossische Technische Hochschule (ETH), Zurich, Switzerland. E-mail: murer@icsi.berkeley.edu. y ICSI and Computer Science Division, U.C. Berkeley. E-mail: jfeldman@icsi.berkeley.edu. z ICSI and Computer Science Division, U.C. Berkeley. E-mail: clim@icsi.berkeley.edu. x ICSI E-mail: mseidel@icsi.berkeley.edu. ii Contents 1 Introduction 4 1.1 Roadmap of this Report : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 1.2 Grammar Notation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 2...
Internal Iteration Externalized
- In Rachid Guerraoui, editor, ECOOP '99 Object-Oriented Programming 13th European Conference, Lisbon Portugal
, 1999
"... Although it is acknowledged that internal iterators are easier and safer to use than conventional external iterators, it is commonly assumed that they are not applicable in languages without builtin support for closures and that they are less flexible than external iterators. We present an iteration ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Although it is acknowledged that internal iterators are easier and safer to use than conventional external iterators, it is commonly assumed that they are not applicable in languages without builtin support for closures and that they are less flexible than external iterators. We present an iteration framework that uses objects to emulate closures, separates structure exploration and data consumption, and generalizes on folding, thereby invalidating both the above statements. Our proposed "transfold" scheme allows processing one or more data structures simultaneously without exposing structure representations and without writing explicit loops. We show that the use of two functional concepts (function parameterization and lazy evaluation) within an object-oriented language allows combining the safety and economic usage of internal iteration with the flexibility and client control of external iteration. Sample code is provided using the statically typed EIFFEL language.
Iterators Revisited: Proof Rules and Implementation
- IN WORKSHOP ON FORMAL TECHNIQUES FOR JAVA-LIKE PROGRAMS (FTFJP
, 2005
"... The Iterator design pattern allows client code to access the elements of an aggregate object sequentially without exposing its underlying representation. Several modern ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
The Iterator design pattern allows client code to access the elements of an aggregate object sequentially without exposing its underlying representation. Several modern
Sather Revisited: A High Performance Free Alternative to C++
- Computers in Physics
, 1995
"... Sather offers safety, elegance and interoperability to computational scientists. High performance scalable language extensions were a design goal of the serial language, not an afterthought. This is a DRAFT of an article to appear in the September/October issue of Computers in Physics. Introduction ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Sather offers safety, elegance and interoperability to computational scientists. High performance scalable language extensions were a design goal of the serial language, not an afterthought. This is a DRAFT of an article to appear in the September/October issue of Computers in Physics. Introduction Sather is an object-oriented language first introduced in 1991. Since then, considerable practical experience has been obtained with the language by the hundreds of users making up the Sather community. Sather offers many safety and convenience features to help programmers avoid common errors and reuse code. Some of these were discussed in a previous Computers in Physics article 10
Dynamic Inheritance In A Statically Typed Language
, 1999
"... . There is a long-standing schism in object-orientation between the safe but rigid statically typed languages, and the exible but less safe dynamically typed languages. This paper presents an enhancement of the exibility and expressive power of a statically typed language, based on an inheritance me ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
. There is a long-standing schism in object-orientation between the safe but rigid statically typed languages, and the exible but less safe dynamically typed languages. This paper presents an enhancement of the exibility and expressive power of a statically typed language, based on an inheritance mechanism which allows both compile-time and run-time construction of classes, as well as dynamic specialization of objects. This enhanced exibility supports better separation of concerns in large systems and allows for more elegant and maintainable designs. Submethoding|inheritance applied to behavioral descriptors|has been used for the construction of control structures for many years, in Beta. With dynamic inheritance, submethoding becomes more expressive, supporting control structures as rst class values which may be constructed and combined dynamically. Even though the concept of submethoding is missing from most other languages, the basic idea could be applied to any statically typed...
The Sather language: Efficient, interactive, object-oriented programming
- Dr. Dobbs' Journal
, 1993
"... Sather is an object oriented language which aims to be simple, efficient, interactive, safe, and non-proprietary. One way of placing it in the "space of languages " is to say that it aims to be as efficient as C, C++, or Fortran, as elegant and safe as Eiffel or CLU, and to support interac ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Sather is an object oriented language which aims to be simple, efficient, interactive, safe, and non-proprietary. One way of placing it in the "space of languages " is to say that it aims to be as efficient as C, C++, or Fortran, as elegant and safe as Eiffel or CLU, and to support interactive programming and higher-order functions as well as Common Lisp, Scheme, or
Sather 1.0 Tutorial
, 1994
"... This document provides basic information on how to obtain your copy of the Sather 1.0 system and gives several pointers to articles discussing Sather 1.0 in more detail. We thoroughly describe the implementation of a basic chess program. By carefully reading this document and the discussed example ..."
Abstract
- Add to MetaCart
This document provides basic information on how to obtain your copy of the Sather 1.0 system and gives several pointers to articles discussing Sather 1.0 in more detail. We thoroughly describe the implementation of a basic chess program. By carefully reading this document and the discussed example program, you will learn enough about Sather 1.0 to start programming in Sather 1.0 yourself. This document is intended for programmers familiar with object oriented languages such as Eiffel or C++. General information on object oriented programming can be found in [5]. The main features of Sather 1.0 are explained in detail: we cover the difference between subtyping and implementation inheritance and explain the implementation and usage of iters. Moreover, the example program introduces all the class elements (constants, shared and object attributes, routines and iters) are introduced. Most statements and most expressions are also discussed. Where appropriate, the usage of some basic featur...

