Menu

Wirthless

Wirthless (2)
Phillip Kilgore

The Wirthless programming language is an instructional aid for ThyLordRoot's [Developing A Programming Language] (DPL) lecture series on YouTube. As the name implies, Wirthless is a language that is not designed for any particular fitness of use; instead, it is meant to teach concepts related to the development of programming languages. Development on the Wirthless language (in addition to DPL) began in October, 2015.

About Wirthless

The need for a language like Wirthless arose due to the unsuitability of most contemporary languages for teaching programming language concepts. Even for programming languages that were designed to be simple enough to be used on the computers of yesteryear (such as BASIC), important theoretical and engineering background is missing from these laguages as they are more-or-less complete. Languages such as Scheme or Lisp are common candidates for this purpose; however, this usually comes at the cost of providing instruction in functional languages (a topic often foreign to budding programmers).

The name Wirthless was chosen for several reasons:

  • In honor of Niklaus Wirth, pioneer in programming languages and chief designer of the Pascal programming language.
  • To show that Wirth had absolutely no involvement in the development of Wirthless.
  • To show that Wirthless is a toy language and that it probably shouldn't be used for any serious project.
  • To give a goal to move towards: how does one make Wirthless worthy?

Wirthless is not designed to be an Esolang; while it is not designed to be useful as such, it is not meant to compare to Turing tarpits such as brainfuck or Piet. The aforementioned languages are far too impractical to be useful for general education in programming language concepts (excepting isolated incidents) and are actually designed with illegiblity in mind. From this standpoint, Wirthless must be able to clearly demonstrate a variety of new concepts, including the ability to "bootstrap" Wirthless. While the author is sure it is possible to bootstrap these languages, he would also hypothesize that this is a task for the masochistic.

However, Wirthless will (at times) have varying degrees of usability to reflect the concept presently being discussed. The initial version of Wirthless is constrained such that it simply will not be possible to write most programs; subsequent versions will overcome this limitation, but some will be less useful than others. It is possible that Wirthless may become less usable in the future as new concepts are discussed.

Versions

Given Wirthless's purpose, it is constantly evolving to meet the needs of each lecture. However, there are various milestones for Wirthless that allow some loose form of versioning.

Wirthless Level 0

Main article: [Wirthless Level 0]

Wirthless Level 0 is (WL0) is a trivial programming language to introduce learners to concepts such as formal grammars, tokenization, parsing, and interpreters. In fact, it is so trivial that it cannot be used to write some programs! Wirthless introduces a simple interpreter called WLI ("Willy") that is written in the C++ programming language.


Related

Wiki: Wirthless Level 0