PhD Student on the Subject of a Big Future for Small Programs in the TOP project

Founded in 1946, the Centrum Wiskunde & Informatica (CWI) is the national research institute for mathematics and computer science in the Netherlands. It is located at the Science Park Amsterdam and is part of the “Netherlands Organisation for Scientific Research” (NWO). The institute is internationally focused and renowned for its high quality research. Over 160 researchers conduct pioneering research and share their acquired knowledge with society. More than 30 researchers are employed as professors at universities. The institute has generated twenty-one spin-off companies.

 

CWI maintains excellent relations with industry and the academic world, both in the Netherlands as well as abroad. After their research careers at CWI, an increasing number of young staff members find employment in these sectors, for example in spin-off companies that are based on research results from CWI. Of course, library and computing facilities are first-rate. CWI's non-scientific services to its personnel include career planning, training and courses, and assistance in finding housing.

 

 

The Software Analysis and Transformation Group (SEN1) has a vacancy for a talented

 

PhD student,

on the subject of A Big Future for Small programs, in the TOP project.

 

 

Research group

SEN1 studies software systems: their design, their construction and their inevitable evolution. The mission is to learn to understand software systems and to improve their quality. The focus is on complexity as the primary quality attribute of software systems. Software complexity is an important subject, which is not only due to the ubiquity of software systems and failing ICT projects in society. SEN1 studies the causes of software complexity and how complex systems can be made simpler.

 

Job description

Software and programming have a brilliant past that has brought us the automation of many expected and unexpected human and societal activities ranging from banking and consumer electronics to mobile networking, search engines and social networks. The present of software is overwhelming: many software systems have sizes in the range of 10-100 million lines of source code and contain tens of thousands of errors that are yet to be discovered.

We claim that software will only have a big future if software itself becomes smaller. Smaller software leads to higher software productivity (we have to write less) and higher software quality (quality guarantees become part of the language and not of the program). But how can we reduce the size of programs by two or three orders of magnitude? A domain-specific language (DSL) is a dedicated language to solve problems in a clearly delineated domain. By using a DSL, programs can be written in high-level domain concepts rather than in low- level implementation concepts. The execution of DSL programs (by interpretation, compilation, simulation or other means) can also use domain knowledge to perform high-level checks, to optimize, and to provide guarantees. Size reductions (and corresponding productivity gains) with a factor 10-50 have been observed on real projects using DSLs.

Our hypothesis is that DSLs are a very promising solution direction for raising both software productivity and software quality and that they should become an integral part of the software creation process. However, both the design and the implementation of DSLs provide conceptual, scientific and technical challenges that have to be solved before this can become reality. We will address DSL design by performing software analysis and fact extraction on software in the same domain that predates the DSL. Automatically extracted feature and concept diagrams will enable the human designer to quickstart his design activity. We will explore which concepts and tools are needed to provide the designer with a knowledge-intensive, interactive, design environment. The implementation of DSLs will be based on meta-programming, an approach where programs use other programs as data and may read, manipulate or write other programs. Known shortcomings of meta-programming will be addressed such as syntactic expressivity, compositionality and scaleability. Case studies in forensics, accountancy and meta-programming will be used for inspiration and validation of the project. We pose the challenge to create a completely self-hosting DSL development environment in less than 25.000 lines of code. Like the mythical Phoenix, such an environment can reproduce itself.

 

Requirements: 

The PhD candidate is required to have at least a master degree in computer science. Preferable qualifications for a candidate includes proven research talent, system programming skills, practical experience with systems and software development in a team. It is essential that you have good academic writing and presentation skills. Candidates are expected to have an excellent command of English, and good academic writing and presentation skills.

 

Terms and conditions: 

The terms of employment are in accordance with the Dutch Collective Labour Agreement for Research Institutes ("CAO-onderzoeksinstellingen"). Moreover CWI offers attractive working conditions, including flexible scheduling and help with housing for expat employees.

The gross monthly salary, for an employee on a full time basis, is €2,037 during the first year and increases to €2,610 over a four year period. CWI also offers excellent and flexible terms of employment, including an employee pension fund.

Information: 

Additional information can be obtained from prof. dr. Paul Klint, email Paul.Klint@cwi.nl telephone +31(0)20 592 4126 and on our website http://www.cwi.nl/research-groups/Software-Analysis-and-Transformation

 

Application

Please send your application before 15 January 2012 to: pd@cwi.nl.

Applications should include a detailed CV, a motivation letter, a list of your M.SC. courses and grades, a copy of your master thesis, and preferably a list of publications.