Applications submitted without the statement of research interests will not be considered.
|Scholarship Sponsor||Delft University of Technology|
|Scholarships level||PhD Position|
|Award Amount||€ 2395 per month in the first year to € 3061|
|Fellowship Period||Four years|
|Opening date||February 27, 2021|
|Closing date||June 06, 2021|
There is a lack of frameworks and tools that aid language designers in defining and implementing languages in a way that strikes a balance between:
- Declarativity: allowing language definitions to be read and understood by language designers as well as programmers.
- Executability: supporting realistic and efficient implementations of language run times.
- Verifiability: providing a foundation for proving meta-properties of the defined language, and verifying properties of programs.
Definitional interpreters are an attractive style of language definition, since they are executable by construction. The key idea of a definitional interpreter is to define an object language by implementing an interpreter for it in a second, better-understood meta-language. There is no shortage of meta-languages that can be used to implement definitional interpreters, but existing meta-languages do not strike a satisfactory balance between declarativity, executability, and verifiability.
Executability and efficiency typically come at the cost of sacrificing declarativity and verifiability, and vice versa. The proposed PhD project revolves around the development of a new language for defining languages that addresses this shortcoming. The vision is to provide a framework and tool that generates efficient language run times from declarative and verifiable language definitions. The goal of the PhD project is to contribute to this vision.
Context: Scopes-and-FramesRecent work on scopes-and-frames introduced a set of memory primitives for implementing lexical name binding (such as binders in λ calculus), and non-lexical name binding (such as module imports, class inheritance, etc.). Scopes-and-frames are:
- Declarative: can be used to implement clear and concise definitional interpreters.
- Executable: based on a relatively low-level memory model that we believe is amenable to implementation in realistic language run times.
- Verifiable: based on a formal correspondence with scope graphs, to provide a uniform type safety principle for name binding in defined object languages.
But, to date, scopes-and-frames have not been integrated into any definition language that strikes a balance between the concerns above.
Potential Lines of Research
There are several research objectives that could be explored as part of this project. For example:
- A definition language that provides integrated support for scopes-and-frames
- Language-parametric garbage collection for scopes-and-frames.
- Abstractions for control and memory (the “control stack” in many language run times). Power and memory is essential for efficient execution and for defining language features such as exceptions, co-routines, continuations (call/cc), etc
- A virtual machine for executing language definitions. Inter-operability between different languages running on the same VM.
- Type-safe compilation of type-safe language definitions
The deadline for applications is June 06, 2021
- A master’s degree (or equivalent) in computer science
- A strong and demonstrable interest in program languages and language engineering, including experience with language engineering topics such as compiler construction, type checking, and definitional interpreters
- A strong commitment to research: turn insights about programming languages and software development into generalisable and elegant theory and solutions; investigate the state-of-the-art/literature; evaluate ideas and solutions against relevant and motivating examples from software engineering practice.
- A strong commitment to turning theory into software and demonstrable software engineering skills (with object-oriented and functional programming languages) to realise that.
- Independent, self-motivated, reliable, and eager to learn.
- Ability to work in a project team and take leadership and responsibility for different research tasks
- An excellent command of English and good academic writing and presentation skills
Conditions of employment
TU Delft offers PhD-candidates a 4-year contract, with an official go/no go progress assessment after one year. Salary and benefits follow the Collective Labour Agreement for Dutch Universities, increasing from € 2395 per month in the first year to € 3061 in the fourth year. As a PhD candidate, you will be enrolled in the TU Delft Graduate School. The TU Delft Graduate School provides an inspiring research environment with an excellent team of supervisors, academic staff and a mentor. The Doctoral Education Programme is aimed at developing your transferable, discipline-related and research skills.
The TU Delft offers a customisable compensation package, discounts on health insurance and sport memberships, and a monthly work costs contribution. Flexible work schedules can be arranged. For international applicants, we offer the Coming to Delft Service and Partner Career Advice to assist you with your relocation.
TU Delft (Delft University of Technology)
The Delft University of Technology is built on strong foundations. As creators of the world-famous Dutch waterworks and pioneers in biotech, TU Delft is a top international university combining science, engineering and design. It delivers world-class results in education, research and innovation to address challenges in energy, climate, mobility, health and digital society.
For generations, our engineers have proven to be entrepreneurial problem-solvers, both in business and in a social context. At TU Delft, we embrace diversity and aim to be as inclusive as possible (see our Code of Conduct). Together, we imagine, invent and create solutions using technology to impact a global scale positively.
Faculty Electrical Engineering, Mathematics and Computer Science
The Faculty of Electrical Engineering, Mathematics and Computer Science (EEMCS) brings together three disciplines – electrical engineering, mathematics and computer science. Combined, they reinforce each other and are the driving force behind the technology we use in our daily lives. Technology such as the electricity grid, which our faculty is helping to make future-proof. We are also working on a world in which humans and computers reinforce each other.
We are mapping out disease processes using single-cell data and using mathematics to simulate gigantic ash plumes after a volcanic eruption. There is plenty of room here for ground-breaking research. We educate innovative engineers and have excellent labs and facilities that underline our strong international position. In total, more than 1,100 employees and 4,000 students work and study in this innovative environment.
The Software Technology (ST) Department is one of the leading Dutch departments in research and academic education in computer science, employing over 150 people. The ST Department is responsible for a large part of the curriculum of the bachelor’s and master’s programmes in Computer Science and the Master’s programme Embedded Systems. The inspiration for its research topics is mostly derived from technical ICT problems in industry and society related to large-scale distributed processing, embedded systems, programming productivity, and web-based information analysis.
The Programming Languages Research Group is an internationally leading research group in programming languages and active in language engineering, language design, domain-specific languages, software verification, and program logics. The section employs over 15 people, including academic staff, around 10 PhD students, and two postdoctoral researchers. The group is responsible for programming and programming languages education at the bachelor and Master’s levels in the TU Delft Computer Science curriculum.
For information about this vacancy, you can contact Dr Casper Bach Poulsen, email: [email protected], tel: +31 15 27 87181.
Are you interested in this vacancy? Please apply before 01-06-2021 via the application button and upload:
- A detailed CV (including a list of publications if available)
- A statement of research interests
- A list of courses taken and grades obtained
- A copy or link to your Master’s thesis
- Contact details of 2-3 references
- Pre-employment screening can be part of the selection procedure.
- You can apply online. We will not process applications sent by email and/or post.
- Acquisition in response to this vacancy is not appreciated