17.07.2018 Vortrag Prof. Salcic, University of Auckland, NZ

Prof. Salcic redend während seines Vortrags

Prof. Zoran Salcic, University of Auckland, New Zealand, hielt im Rahmen des InvasIC-Seminars am 17.07.2018 seinen Vortrag „Designing Static and Dynamic Software Systems – A SystemJ Perspective“ am Lehrstuhl Informatik 12 halten. Hier ist er im Monat Juli zu Gast im Rahmen des Visiting Professorship Programmes der FAU und einer langfährigen fruchtbaren Forschungszusammenarbeit mit Prof. Teich.

Abstract: Embedded and cyber-physical systems involve hardware and software design and are becoming increasingly software-centric. Traditional programming languages such as C/C++ and Java have been used as the primary languages in designing these systems, where programming has been typically extended with run-time concepts that allow designers to employ concurrency (e.g. by using real-time operating systems or other types of run-time support). This led to plethora of techniques to structure and run those systems and satisfy various functional and other requirements. However, structuring of software underpinned by formal, mathematical models, remained on a side-track.
In this talk we are going to present an approach to software systems design underpinned with a formal model of computation (MoC), in our case Globally Asynchronous Locally Synchronous (GALS), which naturally models huge number of embedded and cyber-physical systems, as well as emerging software systems that execute on distributed (networked) platforms. Based on GALS MoC as the central theme, we developed a system-level programming language SystemJ that allows designers to design concurrent GALS software systems in a seamless way. Moreover, the approach still preserves benefits of using a standard programming language, Java in SystemJ case. Originally aimed at the design of static concurrent programs/systems, the approach has been extended in two major directions, (1) (hard) real-time systems when time-predictable execution platforms are used and (2) dynamic, reconfigurable software systems, where the number of concurrent software behaviours varies over time of system operation.