_____________________________________________________________________
Curriculum Vitae (PDF)
__________________________________________________________________
Research
Areas
Projects and Software
-
The RISC Algorithm Language (RISCAL, 2017–)
- A language and associated
software system for specifying and verifying mathematical algorithms.
-
LOGTECHEDU: Logic Technology for Computer Science Education (2018–2020)
-
I am a member of this JKU LIT project on the development of novel logic techniques
for computer science education.
-
Supercomputer MACH-2 (2017–2021)
- I
am the JKU representative and coordinator of this project on the collaborative use
of a massively parallel shared memory supercomputer.
-
EU Project PRACE 4-IP (2015–2018)
- In the frame of this project, RISC (institute
and company) jointly engage in high-performance software development and training
and dissemination activities.
-
LogicGuard II (2014–2016)
- This is a project on the efficient checking of
time-quantified logic formulas with applications in computer security.
-
LogicGuard (2012–2013)
- This is a project on the efficient checking of time-quantified
logic formulas with applications in computer security.
-
EU Project PRACE 3-IP (2012–2016)
- In the frame of this project, RISC (institute
and company) jointly engage in high-performance software development and training
and dissemination activities.
-
The RISC ProgramExplorer (2008–)
- This is an attempt towards an interactive
program reasoning environment.
-
DK W1214 Project “Formally Specified Computer Algebra Software” (2010-)
-
The goal of this project is the development of a formal framework and corresponding
tools for the formal specification of computer algebra software.
-
The ”parallel” Command (2013)
- A command line tool that reads an arbitrary
number of command lines and executes them by a given number of processes in
parallel.
-
3- and 4-Wave Resonance Condition Solver
- A software for the solution of Elena
Kartashova’s resonance conditions for 3- and 4-wave interactions.
-
The RISC ProofNavigator (2005–)
- This is an attempt towards an interactive proof
assistant as a first component of a future environment for formal system and program
reasoning.
-
Austrian Grid 2 Project “Distributed Supercomputing in the Grid” (2007–2009)
-
The goal of this project is the development of a programming interface for running
distributed applications on grid infrastructures.
-
EU Project EGEE-II (2006–2008)
- The goal of the RISC participation in this project is to
port the grid version of the SEE++ software for virtual eye surgery to the EGEE-II
middleware.
-
The RISC SlideShow
- A small tool for generating HTML-based presentations
from templates (developed for producing training material in this project).
-
MathBroker II: Brokering Distributed Mathematical Services (2005–2007)
- The
goal of this project is to continue and extend the results of the previous MathBroker
project on brokering mathematical services in the net.
-
Austrian Grid Project SEE-Grid (2004–2006)
- The goal of this project is the
development of a grid version of the software SEE++ for virtual eye surgery.
-
Brokering Distributed Mathematical Services (2001–2003)
- The goal of this project
is the development of a framework for brokering mathematical services that are distributed
among networked servers. The foundation of this framework is a language for describing
the mathematical problems solved by the services.
-
Distributed Maple (1998–)
- Distributed Maple is a system for writing parallel programs in
the computer algebra system Maple based on a communication and scheduling mechanism
implemented in Java.
-
Integrating Temporal Specifications as Runtime Assertions into Parallel Debugging Tools (2001–2002)
-
This project pursues the integration of formal methods with tools for the debugging of
parallel message passing programs. The idea is to generate from temporal logic
specifications executable assertions that can be checked in the various states of parallel
program execution.
-
Distributed Constraint Solving for Functional Logic Programming (1997–1999)
-
I am the technical leader of a research project on the development of a distributed
constraint solving system based on a functional logic language.
-
Distributed Algorithms in Java (1997)
- DAJ is a toolkit for designing, implementing,
testing, simulating, and visualizing distributed algorithms in Java.
-
High-Performance Generic Programming (1996–1998)
- I direct a research project on
the development of a generic compilation system based on a higher-order functor language
that can be retargetted to multiple core languages.
-
COOPERATE (1998)
- In the frame of the COOPERATE initiative, we are developing a
component of a software system for the support of distributed meetings.
-
The RT++ Thread Package (1996)
- This is a C++ package that provides higher-order
threads in a type-safe framework with garbage collection.
-
The pD Compiler (1993–1994)
- In my Ph.D. thesis I developed a compiler for a small
para-functional programming language that used a new technique to generate parallelism
from annotated functional programs. The target code is efficient PACLIB C code with
explicit task creation and synchronization constructs.
-
The PACLIB Runtime Kernel (1992–1993)
- Hoon Hong and I developed a parallel
variant of the runtime kernel of the computer algebra library SACLIB. The parallel kernel
supports on shared memory multiprocessors tasks as first order objects with
garbage-collection, non-determinism, and lazy task creation.
-
Adam & Eve – An Abstract Dataflow Machine and Its Programming Language (1989–1990)
-
This was the title of my diploma thesis where I developed on a multi-transputer system a
parallel simulator for a new kind of dataflow architecture,
___________________________________________________________________________________________________________
Teaching
Courses at the Johannes Kepler University Linz
- Formal Methods in Software Development (WS 2020, WS 2019, WS 2018, WS
2017, WS 2016, WS 2015, WS 2014, WS 2013, WS 2012, WS 2011, WS 2010, WS
2009, WS 2008, WS 2007, SS 2007, SS 2006, SS 2005).
- Computability and Complexity (WS 2020, WS 2019, WS 2018, WS 2017, WS 2016,
WS 2015, WS 2014, WS 2013, WS 2012, WS 2011, WS 2010, WS 2009, WS 2008,
WS 2007, WS 2006).
- Logic (WS 2020, WS 2019, WS 2018, WS 2017, WS 2016, WS 2015, WS 2014,
WS 2013).
- Seminar Formal Methods (WS 2020, SS 2020, WS 2019, SS 2019, WS 2018, SS
2018, WS 2017, SS 2017, WS 2016, SS 2016, WS 2015, SS 2015, WS 2014, SS
2014, WS 2013, SS 2013, WS 2012, SS 2012, WS 2011, SS 2011, WS 2010, SS
2010, WS 2009, SS 2009, WS 2008, SS 2008, WS 2007, SS 2007, WS 2006, SS
2006, WS 2005, SS 2005, WS 2004).
- Programming 2 (SS 2020, SS 2019, SS 2018, SS 2017, SS 2016, SS 2015, SS 2014,
SS 2013, SS 2012, SS 2011, SS 2010, SS 2009, SS 2008, SS 2007, SS 2006, SS
2005, SS 2004, SS 2003, SS 2002).
- Formal Specification of Abstract Data Types (SS 2020, SS 2018, SS 2016, SS 2014,
SS 2012, SS 2010, SS 2008, WS 2005, WS 2002, WS 2000, WS 98).
- Introduction to Parallel and Distributed Computing (SS2020, SS2018, SS2016,
SS2014, SS2012, SS2010, SS2008, WS2005, WS2003, WS2000, SS99, WS97,
WS96, WS95, SS 94, SS 93, WS 92)
- Formal Modeling (SS 2020, SS 2019).
- Parallel Computing (SS 2019, SS 2018, SS 2017).
- Formal Semantics of Programming Languages (SS 2019, SS 2017, SS 2015, SS
2013, SS 2011, SS 2009, WS 2006, WS 2004, SS 2001, SS 99, WS 97/98, WS
95/96, SS 91).
- Formal Models for Parallel and Distributed Systems (SS 2019, SS 2017, SS 2015,
SS 2013, SS 2011, SS 2009, WS 2006, SS 2001, WS 99, SS 98, SS 96).
- Computer-based Working Environments (WS 2008).
- Algebraic and Discrete Methods in Biology (SS 2009, SS 2008, SS 2007).
- Algorithms for Distributed Systems (WS 2004, WS 2001, SS 2000, WS 98/99).
- Project Seminar Parallel and Distributed Software and Algorithms (WS 2003, SS
2003, WS 2002, SS 2002, WS 2001, SS 2001, WS 2000, SS 2000, WS 99, SS 99,
WS 98, SS 98)
- Formal Semantics of Type and Module Systems (SS 2000, SS 98, SS 96)
- Formal Foundations of Computer Science 1 (WS 99)
- Programming Projects
- Parallel Programming Laboratory (SS 97, SS 95, SS 92)
- Compilation of Functional Languages for Parallel Execution (SS 97, WS 93, WS
91)
- Parallel Languages and Programming Models (WS96)
- Parallel Functional and Logic Programming (SS 93, WS 91)
- Parallel Architectures for Declarative Languages (WS 90)
Courses at the Campus Hagenberg of the Upper Austria University of Applied
Sciences
- Introduction to Programming (Degree Programme “Communication, Knowledge,
Media” respectively “Engineering for Computer-based Learning”, Hagenberg
University of Applied Sciences, WS 2020, WS 2019, WS 2018, WS 2017, WS 2016,
WS 2015, WS 2014, WS 2013, WS 2012, WS 2011, WS 2010 WS 2009, WS 2008,
WS 2007, WS 2006, WS 2005, WS 2004, WS 2003, WS 2002, WS 2001).
- Object-Oriented Programming (Degree Programme “Communication, Knowledge,
Media” respectively “Engineering for Computer-based Learning”, Hagenberg
University of Applied Sciences, SS 2020, SS 2019, SS 2018, SS 2017, SS 2016, SS
2015, SS 2014, SS 2013, SS 2012, SS 2011, SS 2010, SS 2009, SS 2008, SS 2007,
SS 2006, SS 2005, SS 2004, SS 2003, SS 2002).
- Mathematics 1 (Formal Problem Solving) (Degree Programme “Engineering for
Computer-based Learning”, Hagenberg University of Applied Sciences, WS 2004,
WS 2003, WS 2002, WS 2001).
- Seminar “Scientific Writing” (Degree Programme “Engineering for Computer-based
Learning”, Hagenberg University of Applied Sciences, SS 2004).
- Mathematics 2 (Formal Problem Solving) (Formal Problem Solving) (Degree
Programme “Engineering for Computer-based Learning”, Hagenberg University of
Applied Sciences, SS 20004, SS 2003, SS 2002).
- Networks 1 (Degree Programme “Engineering for Computer-based Learning”,
Hagenberg University of Applied Sciences, WS 2003, WS 2002, WS 2001).
- Networks 2 (Degree Programme “Engineering for Computer-based Learning”,
Hagenberg University of Applied Sciences, SS 2002).
- Distributed Computing (Degree Programme “Software Engineering”, Hagenberg
University of Applied Sciences, SS 2000).
Other Courses
Supervised Students