Session
FOSDEM 2021 Schedule
Declarative and Minimalistic Computing

Making a simple language is complicated

Humans are so illogical
D.declarative.minimalistic
Christophe de Dinechin
XL is a minimalistic, yet powerful programming language presented last year at FOSDEM. Keeping the language both simple and powerful is an extremely interesting challenge. In this talk, I will show problems that XL exposed over time, and contrast the solutions being proposed with what is common in mainstream programming languages.
XL is a programming language with an homoiconic representation of programs using 8 node types. There is only one fundamental operator describing parse tree rewrites. This design allows this very minimalist language to read like a relatively normal programming language, while offering very powerful Lisp-like meta-programming capabilities. Unlike Lisp, however, the design of XL is guided by an approach called "concept programming", which focuses on the process of turning ideas into code. This means that it is a core objective to make the code "look like" and "behave like" the ideas it represents. But keeping things simple for us humans turns out to be extremely complicated for a computer. The purpose of this talk is to share some of the insights gained with XL, in the area of syntax, semantics and code generation, with the hope that it will be useful to people working on other languages as well. The discussion will be based on five simple examples: numbers, expressions, statements and other program structures minimum, maximum and other non-objects lists, arrays and other containers text formatting and other I/Os complex numbers and other data types In each case, we will deep-dive, starting with the limitations of mainstream languages and give examples of subtle bugs caused by these limitations. We will then explore the approach XL takes to solve some of these issues, which is often, comparatively, extremely simple and minimalist.

Additional information

Type devroom

More sessions

2/7/21
Declarative and Minimalistic Computing
Juan Julián Merelo
D.declarative.minimalistic
Raku is a multi-paradigm language, that is able to do meta-programming, declarative, object-oriented programing as well as many other specific features. At 5 years, it's still a young language, but some patterns are emerging that make it quite suitable for practicing your programming chops, or embark in some side project. In this talk we will introduce some interesting programming patterns that are seen, possibly, nowhere else, from "grammaroles" through "piggybacking objects". On the other ...
2/7/21
Declarative and Minimalistic Computing
Fridtjof Siebert
D.declarative.minimalistic
Fuzion is a modern general purpose programming language that unifies concepts found in structured, functional and object-oriented programming languages into the concept of a Fuzion feature. It combines a powerful syntax and safety features based on the design-by-contract principle with a simple intermediate representation that enables powerful optimizing compilers and static analysis tools to verify correctness aspects. Fuzion was influenced by many other languages including Java, Python, ...
2/7/21
Declarative and Minimalistic Computing
Hisham Muhammad
D.declarative.minimalistic
This talk is the third part in a trilogy of talks hosted at this devroom that chronicles the birth of Teal, a new programming language that is a typed dialect of Lua. In this talk I will present an update on Teal: we'll talk about the current status of the language and its nascent community, and look forward at what lies ahead for its future. We will discuss a bit about the recent evolution of the project, and where it can go from here while adding more power to the type checking while keeping ...
2/7/21
Declarative and Minimalistic Computing
Pierre Neidhardt
D.declarative.minimalistic
The popular but aging shells (Bash and the like) suffer from many design flaws: lack of structured data, pipes are hard-to-debug blackboxes, lack of interactivity, while the user interfaces are mostly poor and limiting. High time we moved on away from this cruft, starting with a top-notch interactive language boasting full-fledged introspection and debugging.
2/7/21
Declarative and Minimalistic Computing
Jan Nieuwenhuizen (janneke)
D.declarative.minimalistic
Last year GNU Mes helped create a second reduction by 50% of the Guix bootstrap binaries, to about ~60MiB. This year we have removed the binary seeds for MesCC-Tool and GNU Mes and replace them with Stage0 and M2-Planet: the Full Source Bootstrap!
2/7/21
Declarative and Minimalistic Computing
Pjotr Prins
D.declarative.minimalistic
Declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow. Many languages that apply this style attempt to minimize or eliminate side effects by describing what the program must accomplish in terms of the problem domain, rather than describe how to accomplish it as a sequence of the programming language primitives. Declarative programming is the basis for functional programming, logic programming and dataflow.
2/7/21
Declarative and Minimalistic Computing
Andy Wingo
D.declarative.minimalistic
An introduction to compiling to WebAssembly, from a low-level perspective. Learn more about the nuts and bolts of targetting basic WebAssembly 1.0, as well as a look forward towards extensions that are still in development.