PORTALE DELLA DIDATTICA

Ricerca CERCA
  KEYWORD

A new language for designing synthetic life

keywords COMPILERS, PROGRAMMING, PROGRAMMING LANGUAGES, SYNTHETIC BIOLOGY, SYSTEMS BIOLOGY

Reference persons STEFANO DI CARLO, ALESSANDRO SAVINO

External reference persons Leonardo Giannantoni (leonardo.giannantoni@polito.it)

Research Groups DAUIN - GR-24 - SMILIES - reSilient coMputer archItectures and LIfE Sci

Thesis type APPLIED, EXPERIMENTAL, EXPERIMENTAL - DESIGN, EXPERIMENTAL AND MODELING, SOFTWARE DEVELOPMENT

Description Synthetic biology is a biology-based interdisciplinary field of study, that seeks to create new biological parts, devices, and systems, or to redesign systems that are already found in nature, for them to have new useful abilities. Synthetic biology is intertwined with systems biology, that is, the computational analysis and modeling of complex biological systems.

Modeling biological systems requires making different sub-domains work together, by describing them in the same model, and enabling communication between its parts.
However, different languages exist for describing biological models for each specific sub-domain.

Our research group has been working to create a unifying language able to model complex biological systems. Whereas other languages are based on the XML syntax, we chose a much more human-readable format to make the language biologist-friendly. It is designed to completely hide the underlying formalism (Nets-within-Nets), while focusing on accessibility and standardization.

The next step now is to make our language
1. self-modifying
2. able to describe (virtually) infinitely nested systems

To this end, we expect you to redesign our language to be homoiconic.
A homoiconic language benefits from many interesting properties
* straightforward support for tree-like data structures
* programs formed by nested and stacked instances of such data structures
* program and data structures explicitly reflected "on screen", through a human-readable syntax
Boiled down, in a homoiconic language code is data. That is, manipulation of programs (possibly by other programs) becomes trivial.
An example of homoiconic language is Lisp. Its semantic is directly defined by means of S-expressions, simple and composable tree-like data structures. Lisp programs are S-expressions themselves and can be composed with/as data.

Required skills * Formal languages and compilers
* Object-oriented programming


Deadline 30/10/2023      PROPONI LA TUA CANDIDATURA




© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
Contatti