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