В четвер в 14:00, 28.04. 2016, в 100 аудиторії фізичного корпусу відбудеться відкрита лекція Andre van Delft на тему “Programming with Algebra”
Text parsers, GUI controllers and actors have more in common than you might think.
Currently their are often programmed using anonymous methods, also known as lambdas.
With these you program parser combinators, futures, event handlers, execution in different threads.
All nice engineering, but the toolbox has become big and incoherent.
Besides, all these lambda’s too often lead to callback hell.
It is possible to overcome this. We extended Scala with an expression syntax
that was inspired on the Algebra of Communicating Processes.
This way you can express nondeterminism, event handling, concurrency
and data flow in a clear and crispy YACC-like style.
There are elementary operators for sequences and choices, normal parallelism,
or-parallelism, disruption and data flow. At the bottom level in such specifications
there is Scala code to be executed. This is possible in all kinds of execution modes:
the normal thread, the GUI thread, a background thread, as event handler.
Boilerplate code vanishes; what remains is all algebra, without you noticing.
You will see surprising resemblances between parsers, GUI controllers and actors.
Many patterns are still to be discovered.
Enjoy this journey to largely unexplored lands.
Andre van Delft: André van Delft (1960) is an independent computer science researcher in the Netherlands. He has studied physics (BSc) and mathematics (MSc) in Leiden, and business administration (MBA) in Rotterdam. He has worked as a software developer and as a scientist for companies and international organisations. André loves math and applies it in programming language extensions he created such as SubScript, a Scala extension for easy event driven and concurrent programming. He also made C0H and C1R on RosettaCode.org.
Anatolii Kmetiuk: Anatoliy Kmetiuk (1995) is an Ukrainian student of law in Odessa. He will probably get the master’s degree early 2017. Meanwhile he also does a self study in computer science. In 2013 he started to learn Scala, and joined André van Delft’s open source project SubScript.