I continue my notes on this year's SOFSEM conference
where I left them.
On Wednesday, I attended the tutorial session by Andrew Butterfield on
Unifying Theories of Programming (UTP), a paradigm introduced by C.A.R.
Hoare. Broadly speaking, UTP combines denotational, operational and
algebraic semantics in a unified framework for both the formal
specification and implementation. It is almost as there was no distinction
between syntax and semantics. Andrew Butterfield also showed us his
tool UTP2, programmed in Haskell, and how the library for UTP in the
Isabelle theorem prover works.
One important
part in any conference is to be able to discuss with other colleagues
and experts about interesting papers. On Wednesday I missed the keynote
talk by Jakko Hollmen about Predictive Analytics because I was
talking about some papers with colleagues. (I found that to be a valid excuse to miss a
talk in a conference!) Also, on Wednesday we had the social programme:
an excursion with a guide around the city centre of Limerick and the
conference dinner in the Bunratty Castle. Inside the castle we not only
enjoyed a typical Irish dinner but also an entertainment program. It was
a dinner with a medieval flavour because of the place but also because
of the show we saw and the way we ate. We had a broth, pork ribs and
chicken... But without forks! So we ate with our hands while listening
to some typical Irish songs performed by the very talented people of the
Bunratty Castle.
That's not all that happened
on Wednesday. The organization had a surprise for us: since the lunch
break was two hours long, during the second hour we had a talk about
music and computers. Inside the Department of Computer Science in
Limerick there is the Digital Media & Arts Research Centre, and the
organization took advantage of this fact in order to propose them to
give 3 talks: one on Wednesday and two on Thursday. The first talk was
done by Mikael Fernström (
http://www.idc.ul.ie/mikael/)
, who explained us his work. He uses computers in order to produce new
sounds (frequencies that a physical instrument wouldn't be able to make)
and algorithms in order to create music for "things". As an example, he
created a piece that took some variables from meteorological data so we
could listen to how the weather in Ireland sounds.
On Thursday, in this special sessions, Giuseppe Torre (
http://www.muresearchlab.com/)
showed us his work, where he uses computers to represent art. For
example, his work 'AI PRISON' is a program in C++ that outputs '0'
unless the technological singularity in Kurzweil's sense (or
'Terminator' sense) appears. It is exposed in the BLITZ Contemporary Art
Gallery in Malta. Finally, Kerry l. Hagan (
http://www.kerrylhagan.net/)
played some of his musical works. Again, the use of computers is the cornerstone. She uses a program that allows her to program and compose
the music she is going to play. This three artistic sessions where a really
nice touch from the organization.
Back to the
science, on Thursday we started with a keynote talk by Óscar Pastor
López about Model-driven Development. The idea is that developers should
be freed from programming concerns and be able to concentrate on
guaranteeing that the final software product corresponds to what the
company asked for. There are two basic notions in this field: capability
and the Model Driven Architecture. The first one is especially used at
the earliest steps of a software process in order to characterize the
relevant modelling components to be specified. Whereas the Model Driven
Architecture is used in the definition of the desired software process
in order to structure the development from requirements to code.
Afterwards
I attended the tutorial by Cristina Seceleanu about verification and
test-case generation for Automotive Systems. Nowadays a car is developed
with more electric components than hydraulic ones. For example, the
connection between the steering wheel and the steering control is done
by wires and software. This makes mandatory the use of testing in order
to verify the correct behaviour of a car. In this field of research
tools as UPPAAL are of great use. After the lunch we had the second
keynote talk of the day. Paul Spirakis explained us about "programmable
matter", which at the beginning seemed a field closest to sci-fi than
actual computer science. So, let me explain what I understood, nowadays
digital information (as internet) has spread along the world. That
information is simply data, which can be manipulated. This vision is
focused in our ability to manipulate data, and thus extended to
manipulate matter via information-theoretic and computing mechanisms,
incorporating information to the physical world. This is inspired in the
biological world where living organisms are built by cells and those
cells are built by information (DNA). Paul Spirakis explained us how
Network Constructions is a promising technique for modelling this idea
of "programmable matter". Broadly speaking, Network Constructions is
simply a collection of finite-automata that interact randomly like
molecules according to the rules of a common protocol.
The
last session on Thursday for me was the tutorial session by Louis-Marie
Traonouez by Plasma Lab, a statistical model checker (SMC). A SMC and
uses less resources than a model checker at the cost of losing
certainty. SMCs answers with a confidence level. Plasma Lab is SMC a
library written in Java that can be used in tools as UPPAAL. The
properties can be described in a form of bounded linear temporal logic
(like LTL but with bounds in the length of the paths).
The
last keynote talk of SOFSEM 2017 was on Friday and by Igor Walukiewicz.
The topic of the talk was automatic verification of recursive programs
with thread creation. Although this situation appears in programming
languages such as Java, Scala or Erlang it doesn't behave well in
automatic verification. For example, reachability is not decidable even
for pushdown systems where two threads are communicating over a 2-bit
shared variable. Igor Walukiewicz showed us some decidable setting by
relaxing the semantics of thread creation operation. The obtaining
result might not be very efficient but at least is computable.
Finally,
I want to end these notes on SOFSEM by acknowledging the excellent work
of the local organization at Limerick. It's true that SOFSEM 2017
didn't start very well in June, but all things considered everything
went smooth and fine in Limerick. Also, the organization always tried to
add something new to the conference (as those special talks about art
and computer science), which is always nice for the participants.
Next year SOFSEM will be held in Austria and my recommendation is to check it out!