Lead
Die Entwicklung korrekter und effizienter Softwaresysteme ist schwierig, und wird mit den stetig wachsenden Anforderungen an Software zukünftig noch schwieriger. Dieses Projekt studiert auf welche Art Programmiersprachen und Laufzeitumgebungen, welche von Softwareentwicklern zum Bau ihrer Applikationen verwendet werden, helfen können, die Entwicklung zu vereinfachen.

Lay summary

Im ersten Track wird unsere Arbeit neue Einsichten über Programmiersprachen für heterogene Systeme generieren. Viele moderne Computer (z.B., Smartphones) sind heutzutage heterogen, das heisst, dass verschiedene Teilsysteme auf verschiedene Weisen programmiert werden müssen, was zu Problemen und potentiellen Fehlerquellen an den Schnittstellen zwischen den Teilen führen kann. Unsere Einsichten werden über die Programmierung von Grafikprozessoren (GPU) hinausgehen und generelle Einsichten für die Interaktion und Integration verschiedener Programmiermodelle beinhalten.

Im zweiten Track werden neue Einsichten über die effiziente und effektive Fehlersuche in modernen Softwaresystemen angestrebt. Mit steigender Komplexität in modernen Systemen sind Fehler immer schwieriger zu finden. Ein Kernproblem ist die oft grosse zeitliche und räumliche Distanz zwischen einer Fehlerquelle und den Symptomen eines Fehlers. Unsere Arbeit wird Einsichten generieren, wie man diese grosse Distanz effizient und effektiv überbrücken und damit die Fehlerbehebung signifikant erleichtern kann.