An object-based extension of the Janus language and its formal specification - Jumig, Judith C. (Animo Repository, 1995)
The Janus programming language was designed for children of ages seven to eleven. This language supports turtle graphics, control statements, recursion, animation, text display, and music generation. To provide for a convenient user interface, a programming environment had been developed. All these have been previously accomplished without any formal study of the syntax and semantics of the language. This present work formally specifies the syntax and semantics of the Janus language, with the intention of uncovering certain poor features of the language. The syntax of the language is defined in Backus-Naur Form while the semantics of the language is formally specified using the RAISE Specification Language (RSL). The formal specification of the language has in fact led to the discovery of a number of constructs that violate the principles of orthogonality, syntactic consistency, expressivity, support for abstraction, simplicity and self-documentation. These are the principles that contribute to the overall readability and writability of the language. The poor features of Janus were removed and certain constructs were modified. For these specifications, a whole new set of formal specifications are likewise presented. Furthermore, the Janus language was extended to include the notion of objects . This extension was likewise subjected to the same specification formalism to ensure that it is consistent with the other similarly specified features of the language.