MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Nil and None considered Null and Void

Download:
Download as a PDF | Download as a PS
by Thomas Kuhne
ftp://ftp.informatik.uni-stuttgart.de/pub/eiffel/WOON_96/kuehne.ps.gz
Add To MetaCart

Abstract:

Object references in object-oriented languages suffer from their pointer heritage. In this paper we discourage the use of a single magic value, shared among all reference types, to denote a nonreferencing state. The advantages of void values, which include uniform treatment of void and nonvoid data, provision of default-behavior, termination of recursive definitions, and gracefully dealing with error situations are presented in pattern form. We then investigate the impact of the Void Value pattern for language design, extending the applications to implicit creation, abstract method execution, and simplified module usage. Finally we point out related mechanisms like pattern matching in functional programming languages and compare void values to nullcases. 1

Citations

1268 The C++ Programming Language – Stroustrup - 1997
1127 SmallTalk 80: The Language and its Implementation – Goldberg, Robson - 1983
1015 The C Programming Language – Kernighan, Ritchie
628 Eiffel: The Language – Meyer - 1991
483 Self: the power of simplicity, in – Ungar, Smith - 1987
234 Precise interprocedural dataflow analysis via graph reachability – Reps, Sagiv, et al. - 1995
197 Dimensions of object-based language design – Wegner - 1987
107 Typestate: A programming language concept for enhancing software reliability – Strom, Yemini - 1986
96 Views: A way for pattern matching to cohabit with data abstraction – Wadler - 1987
87 A critique of Standard ML – Appel - 1993
82 Object-oriented programming versus abstract data types – COOK - 1991
42 Engineering a Programming Language: The Type and Class System of Sather – Szypersky, Omohundro, et al. - 1993
29 Smart pointers: They're smart, but they're not pointers – Edelson - 1992
25 Pattern Matching with Abstract Data Types – Burton, Cameron - 1993
22 A framework for higher-order functions in C – Läufer - 1995
22 Values and objects in programming languages – MacLennan - 1982
21 The checks pattern language of information integrity – Cunningham - 1995
18 Uniting Functional and Object-Oriented Programming – Sargeant - 1993
6 Parameterization versus Inheritance – Kuhne - 1995
5 Reusability Through SelfEncapsulation – Auer - 1995
5 Modeling with objects and values: Issues and perspectives – Eckert, Kempe - 1995
3 Introduction to Functional Programming. C.A.R. Hoare Series – Bird, Wadler - 1988
3 UFO: Language evolution and consequences of state – Sargeant, Hooton, et al. - 1995
1 On the interaction of object11 oriented design patterns and programming languages – Baumgartner, Laufer, et al. - 1996