"The problems inherent in providing natural language generation of colour names are discussed. Three models for generating natural language descriptions of HSL colours are described. The effectiveness of these models in describing colours is compared experimentally. It is concluded that a rigid syntactic mapping of HSL components to orthogonal linguistic axes is generally inferior to exhaustive enumeration of colours or custom selection of adjectival colour modifiers. Interesting variations of model preference for different hues and different numbers of adjectival modifiers are noted."
"We discuss seven undesirable features common to many programming languages used to teach first-time programmers, and illustrate typical pedagogical difficulties which stem from them with examples drawn from the programming languages ABC, Ada, C, C++, Eiffel, Haskell, LISP, Modula 3, Pascal, Prolog, Scheme, and Turing. We propose seven language design (or selection) principles which may reduce the incidence of such undesirable features."
"We describe an alternative syntactic binding for C++. This new binding includes a completely redesigned declaration/definition syntax for types, functions and objects, a simplified template syntax, and changes to several problematic operators and control structures. The resulting syntax is LALR(1) parsable and provides better consistency in the specification of similar constructs, better syntactic differentiation of dissimilar constructs, and greater overall readability of code."
"We describe an alternative syntactic binding for C++. This new binding greatly simplifies the use of many C++ constructs and reduces the likelihood of simple syntactic errors, such as unintended assignments within conditionals. The new binding includes a completely redesigned declaration/definition syntax for types, functions and objects, a simplified template syntax, and changes to several operators and control structures. The resulting syntax is LALR(1) parsable (with no conflicts and no need for semantic feedback to the lexer) and provides better consistency in the specification of similar constructs, better syntactic differentiation of dissimilar constructs, and greater overall readability of code."
"Philip W. Hall IV (Parsing with C++ Constructors, ACM SIGPLAN Notices, 28:4) has outlined a preprocessor technique for building recursive descent parsers using C++ constructor functions. This paper presents an alternative C++-based parser generation scheme which uses a hierarchy of classes with appropriately overloaded operators to embed the actual grammar of one or more parsers in a standard C++ source file. This approach eliminates the need for preprocessing of source files and permits the use of parsing schemes somewhat more sophisticated than simple statically-defined recursive descent."
"A technique for constructing embedded grammar-based parsers in C++ was described in (Conway, D.M., Parsing with C++ classes, ACM SIGPLAN Notices, 29:1) This paper presents an extension to that technique which allows parsing actions to be specified directly as part of the grammar, rather than indirectly (as function calls)."
"This paper describes a new approach to generating command-line argument parsers in Perl. The system presented takes a standard "usage" description and reverse-engineers a parser which satisfies that description. This ability to specify complex parsers declaratively also proves useful in other contexts, such as comma-separated-value processing, simple input parsing, and string interpolation."
"This paper discusses some of the issues involved in designing robust and comprehensive algorithms which convert singular English nouns, verbs and adjectives to their appropriate plural forms. Four such algorithms are given: one for each part of speech which inflects in the plural, and a unified algorithm for all such parts of speech. A word comparison algorithm which can identify words which differ only in their grammatical number is also given. Finally, an overview is given of a full implementation of the various algorithms in the Perl programming language."
"A standard method of simplifying the task of obtaining a shaded image of a solid object is to represent it by a collection of surface patches or a polyhedron. A smooth shading technique is then applied to each patch/facet to restore smoothness to the image. This paper introduces an entirely new approach to surface representation: the use of isoluminance contours to represent CSG-type primitive objects. The surface of an object is divided into strips by these contours, such that the area between two adjacent contours has a constant light intensity value. This method does not require any smooth shading technique and takes advantage of the polygon fill hardware facility available in many contemporary graphics devices."
"Isoluminance contouring is a representational scheme which supports a rendering technique combining the speed of flat shading and the visual realism of non-recursive ray-tracing. This paper presents extensions to the method which implement a full solid constructive geometry scheme on isoluminance contoured primitives."
"A series of extracts from the book Object Oriented Perl."
"We present a loosely integrated set of teaching techniques that we have found effective in improving our own performance as tertiary educators. These techniques emphasize the central role of communication in the teaching process and cover preparation, delivery, and the use of feedback. We conclude with a brief discussion of some important pedagogical"
"In 1995 the Monash University Department of Computer Science implemented a mentoring scheme to support its First Year students through the transition to University study. This paper describes the evolving structure of the scheme and suggests further improvements to it."
"[This paper and the talk that accompanies it are not yet on-line. The talk will be available in late October] Take two quantized disjunctive/conjunctive equiprobable scalar datastructures, add a dash of multidimensional polymorphism, a handful of redefined operators, and a pinch of breadth-first optree evaluation. Simmer gently in the Principle of Least Effort. Decant into a grandiosely named module. Now serve vector operations (prime generation, list membership, list extrema, etc.) without loops or recursion."
"This paper describes a Perl module -- Lingua::Romana::Perligata -- that makes it possible to write Perl programs in Latin. A plausible rationale for wanting to do such a thing is provided, along with a comprehensive overview of the syntax and semantics of Latinized Perl. The paper also explains the special source filtering and parsing techniques required to efficiently interpret a programming language in which the syntax is (largely) non-positional."