Declarative Amsterdam

A Declarative Code Browser with ixml and XForms

ixml is a declarative language for transforming data representations, which became a stable specification in 2022.

The original pilot implementation of ixml, ixampl, was written in the very-high-level programming language, ABC, the forerunner of Python.

The implementation is split into two parts: a bootstrap parser, that reads ixml grammars and transforms them into the structure needed for part 2, which is a generic parser that reads any document and transforms it into XML. Part 1 is about 700 lines of code, part two about 780.

One of the many possible uses of ixml is to transform any data representation into XML so that it can be used as input to XForms, a Turing-complete declarative programming language that uses XML as its data format. To illustrate this, a code browser was made for the ixampl implementation, in a nicely self-referential way, using a 30 line ixml grammar to transform the ABC code into an XML representation, and use this as input to an XForms application of around 120 lines that enables you to browse and search in the ixampl code. Although the browser is for ABC code, with the exception of the ixml grammar there is little that is specific to ABC, meaning that it would be easy to adapt it for another language.

So combining two declarative technologies, we were able to create a useful, functional code browser in only 150 lines of code.

Presentation, 3 November 2023

I asked Bing to write a bio:

Steven Pemberton is a distinguished researcher in the field of computer science and information technology, with a long and rich history of contributions to the development of the internet and the web. He is currently affiliated with the Centrum Wiskunde & Informatica (CWI) in Amsterdam, where he conducts research on interaction, declarative programming, and web technologies.

Steven Pemberton has been involved with the web from its inception, and has co-designed several web standards, such as HTML, CSS, XHTML, XForms, and RDFa. He has also co-authored books on ABC, the programming language that inspired Python, and on Pascal implementation. He has chaired the W3C HTML and XForms working groups for a decade, and still chairs the XForms group. He is also a co-founder of, the Dutch chapter of ACM SIGCHI, and a former member of the SIGCHI Executive Committee. He has received numerous awards and recognitions for his work, including the ACM SIGCHI Lifetime Service Award in 2009 and the ACM SIGCHI Lifetime Practice Award in 2022.

Steven Pemberton is a frequent speaker at international conferences and events, where he shares his insights and vision on the future of the web and human-computer interaction. He is also an occasional broadcaster, having appeared on radio and TV shows to discuss topics related to his research. He is passionate about making the web more accessible, usable, and empowering for everyone.

If you want to learn more about Steven Pemberton and his work, you can visit his personal website or his CWI profile. You can also watch some of his recent talks on YouTube, such as “The Internet is a Mess. What is to be Done?”, “On the Design of Notations”, and “The Hundred Year Web”. You can also follow him on Twitter or LinkedIn.