Welcome to SubScript, a way to extend common programming languages aimed to ease event handling and concurrency. Typical application areas are GUI controllers, text processing applications and discrete event simulations. SubScript is based on a mathematical concurrency theory named Algebra of Communicating Processes (ACP).
This month we had 3 presentations, titled “Reactive Programming with Algebra”:
- 2 December Amsterdam (Amsterdam.Scala meetup, TomTom premises)
- 6 December Odessa (Java/Scala lab)
- 9 December London (Scala Exchange)
There is a 50 minute video recording of the latter presentation by Skills Matter; easy signup required.
We are about to start working with SugarScala (PDF), which seems to be a great tool for parsing Scala and implementing extensions. Interested to join? Contact andre.vandelft or anatoliykmetyuk at gmail.
Let me introduce myself: my name is Anatoliy Kmetyuk, I’m a student from Odessa, Ukraine. I’ve been contributing to SubScript since January 2014. I took part in Google Summer of Code 2014 with SubScript Actors project, aimed to facilitate SubScript-Akka collaboration.
Recently, a new section have appeared in this website, the Tutorials section (you can see it in the main menu bar). It contains the tutorials on SubScript to help you to start using SubScript. There are currently 2 groups of tutorials there: “Getting Started” and “Application Developers tutorial”.
The “Getting Started” tutorials explain how to start working with SubScript, as well as how to use the graphical debugger that is needed to debug your SubScript applications.
The “Application Developers tutorial” is a tutorial on SubScript language that will teach you how to write programs in SubScript.
Also, there’s another group of tutorials to be added in future: the “Core Developers tutorial”. This one will document the internals of SubScript, so that anyone can improve it, contribute to it or adjust it under his own needs.
We hope you’ll enjoy using SubScript! If you have any questions, feel free to contact us.
It is already two months after my presentation at EPFL. I am lagging behind here.
I spent two and a half very nice days at EPFL. The Scala team impressed with the ongoing projects. I gave a presentation on SubScript. This went fine except for two things:
- we made a video recording using the same MacBook that ran the Keynote presentation and application demo’s. After a while the recording made the MacBook unresponsive, so we had to stop it.
- when presenting axioms for the disrupt operator (“/“) someone at the audience noted that these were inconsistent. That was a bit embarrassing. Fortunately it is not that hard to repair the axioms. This is done in an updated version of the presentation slides, available here. At least I am glad that this error has been repaired now.
The day after the presentation, Eugene Burmako told me he wanted to see less local variables in the scripts. I realized he was right; local variables make scripts less elegant and concise. So I started working on some new language constructs to get rid of variables and to enhance data flow. I am quite happy with the result. I intend to create a new post on this soon.
During this work it became clear that I should make a minor language change: the question marks for script output parameters should precede these parameters, rather than come behind them: n? becomes ?n. That also makes script call expressions much easier to parse. I have meanwhile changed the question mark positions on the pages of this website; however, the SubScript compiler has not yet been changed, and neither have the example program files in the GitHub project. Older documents and presentation slides will not change at all, so beware for some inconsistency.
This weekend I also changed the SubScript Actors page. I hope SubScript may ease programming Akka actors in the same way it eases programming GUI controllers.
tl;dr: after a few months of doing other things it becomes now time again for me to work on the implementation.
André van Delft
The Scala team at EPFL Lausanne is this year again a mentoring organization for the Google Summer of Code, “a global program that offers students stipends to write code for open source projects”. Following a presentation André van Delft gave there a month ago, the Scala team has included two projects for GSoC related to his language extension named SubScript. More information is here at the Scala site and below.
Dataflow programming is a programming paradigm that models a program as adirected graph of the data flowing between operations. It is mainly used in Unix shell languages: small single-purpose tools are easily glued together using the pipeline symbol: |. Mainstream programming languages do not support it, though there are some libraries around.
SubScript supports dataflow programming though its network operator ==> and communication scripts ending in a double arrow (<= and =>). Continue reading