Declarative and Minimalistic Computing

Optimising for humans

Nim meta-programming for 0-cost abstraction on microcontrollers
D.declarative.minimalistic
Peter Munch-Ellingsen
Nim is a statically typed language with a comprehensive meta-programming system. This makes it a really nice fit for micro-controllers, or otherwise hardware constrained environments (or to just use less resources in general). Based on my experiences with Nim and micro-controllers I'll dive into how meta-programming, DSLs, and Nims rich type system can be used to make nice readable code for micro-controllers without any added overhead compared to C. Both in terms of code-size, but also in terms of speed, in fact the code executed on the controller is pretty much the exact same thing, but with vastly improved ergonomics.

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 (FOSDEM'20) GNU Mes helped create a second reduction by 50% of the Guix bootstrap binaries, to about ~60MiB; 25% of its original size. 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.