Towards monolingual programming environments
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Subsequence references: first-class values for substrings
ACM Transactions on Programming Languages and Systems (TOPLAS)
HOPL-II The second ACM SIGPLAN conference on History of programming languages
Iteration abstraction in Sather
ACM Transactions on Programming Languages and Systems (TOPLAS)
A LISP garbage-collector for virtual-memory computer systems
Communications of the ACM
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
A LISP Garbage Collector Algorithm Using Serial Secondary Storage
A LISP Garbage Collector Algorithm Using Serial Secondary Storage
The synthesis of algorithmic systems
ACM Turing award lectures
A minimalist approach to objects
Computer Languages, Systems and Structures
Language subsetting via reflection and overloading
FIE'09 Proceedings of the 39th IEEE international conference on Frontiers in education conference
Hi-index | 0.00 |
The first language computer science students learn, more often than not, is a common production language such as C++ or Java. A minority of curricula, however, begin with a language, such as Scheme, assumed to be a better framework for teaching about computation. SWAY is an experimental teaching language, as expressive as Scheme, but provides an easier transition to production languages. It is a functional language at its core, but adds assignment and a simple object system. One of the goals of SWAY is to incorporate C-style syntax, but to vary from that syntax when pedagogical or ease of programming needs arise. One such area that SWAY differs from languages with C-like expressions is in the selection of items from homogeneous and heterogeneous aggregates. Much like the overloading of the plus operator to add integers as well as reals, a single operator is used for selection in SWAY, regardless of the aggregate structure. It is shown that taking such an approach naturally eases the burden of moving from arrays to objects to lists, in any order, both in teaching and programming.