News

Week 1 & 2 Slides and Tasks

Written on 27.04.26 by Alexi Turcotte

Hey all!

As promised in the kick-off meeting, I've just posted two documents in "Materials":

1. The slides from the meeting, and 

2. A much more detailed document, walking you through setting up your first fandango-rs crate, as well as three tasks to complete, one thinking, one reading, and… Read more

Hey all!

As promised in the kick-off meeting, I've just posted two documents in "Materials":

1. The slides from the meeting, and 

2. A much more detailed document, walking you through setting up your first fandango-rs crate, as well as three tasks to complete, one thinking, one reading, and one implementing. Please read and work on these tasks before the next seminar meeting.

While you go about getting your first crate up and running, think of a preferably ranked list of at least three programming languages you'd like to fuzz in this course. We will likely ask you to submit list before the seminar meeting next week so that we can ensure a good spread of unique programming languages. Besides that, if you encounter any insurmountable difficulties when following the tasks, particularly if the instructions are unclear or you struggle with implementing the extra constraint, let us know! Now, let's find tons of compiler bugs.

Important: Register in LSF by May 15

Written on 27.04.26 by Andreas Zeller

Dear all,

Please be reminded that you need to formally register for the seminar "exam" in LSF by May 15, 2026. Do not forget to do so; we'd suggest that you register right now.

You can also always un-register by that date, should you find the seminar is not to your taste (and register again if… Read more

Dear all,

Please be reminded that you need to formally register for the seminar "exam" in LSF by May 15, 2026. Do not forget to do so; we'd suggest that you register right now.

You can also always un-register by that date, should you find the seminar is not to your taste (and register again if your mood changes). However, be also reminded that we're always here to help you make your participation a success :-)

Looking forward to working with you,

Andreas + Alexi

Twelve test generators for twelve programming languages

In this seminar, we will study and develop _test input generators_ for 12 statically typed programming languages, including Java, Go, Rust, Kotlin, Scala, Haskell, ML, and other languages of your choice.

At CISPA, we have developed test generators that produce test inputs in highly complex formats and languages. Recently, we have been successful in getting these generators to produce lots of valid and diverse C programs. We can feed these into a C compiler and see what happens. (Some compilers actually crash.)

Our method requires (1) a _grammar_ of the programming language in question (these are always already available), and (2) a set of _constraints_ that define rules such as definition before use, proper scoping, or basic type correctness. We already have such constraints in place for the C language. Since the rules do not vary much across languages, adapting the C rules to another programming language may take only a few days.

In this seminar, we will study different programming language concepts each week, with each participant focusing on applying that concept to the generator for their chosen language, and then discussing together how these concepts are realized. At the end of the seminar, your generator may be included in a high-profile scientific publication we plan to write in the summer, with you as a co-author!

Requirements: To be successful in this seminar, you need:

* basic knowledge of grammars, as you would typically have gained in introductions to computer science
* a good understanding of the semantics of programming languages, such as identifier usage, scoping, typing, and more.

Constraints are specified in Rust, so knowledge of Rust will be helpful. However, you will be able to learn Rust during the seminar.

Successful participation in "Security Testing" or equivalent knowledge of structured fuzzing is a plus.

Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators.