Propostas Submetidas

DEI - FCTUC
Gerado a 2024-04-23 15:28:05 (Europe/Lisbon).
Voltar

Titulo Estágio

Turing Complete Type Systems

Áreas de especialidade

Engenharia de Software

Sistemas Inteligentes

Local do Estágio

DEI

Enquadramento

Type systems are a way of assuring the program is correct before execution. Traditionally this just refers to types, but it can also ensure memory safety (Rust) and concurrency safety (Aeminium).

A turing-complete type system is basically a complete programming language that exists during compilation that can provide certain extra features a regular type system cannot.

Objetivo

We propose a turing-complete type system for a language, in which the typesystem can allow the compiler (and other tools) to achieve:

- Type and memory safety
- Static analysis invariants checking
- Parallelization
- Other usages

Plano de Trabalhos - Semestre 1

17 Sep - 31 Oct
Review of the most recent approaches to this problem in the state of the art. Identification of the biggest challenges on this area.
1 Nov - 31 Nov
Approach - Definition of the requirements and work plan.
1 Dez - 31 Dez
Implementation of the typesystem on a meta-programming language (Python, Ruby, Lisp, Perl...)
1 Jan - 28 Jan
Writing and reviewing of the first semester report.

Plano de Trabalhos - Semestre 2

15 Feb - 8 Mar
Implementation of traditional concurrency and memory safety features.
9 Mar - 31 Mar
Implementation of parallelization features in the type checking.
1 Apr - 30 Apr
Implementation of the parallel runtime for code generation.
1 May - 31 May
Evaluation of the platform running several parallel programs on the platform.
1 Jun - 28 Jun
Writing and reviewing of the dissertation.

Condições

The proposed work plan will be performed in the Software and Systems Groups of CISUC, where the student will be given access to required hardware.
This is not a paid internship.

Observações

We are looking for a T-shaped student: he or she should be highly competent in systems programming in C, but should also be acquainted with higher level languages. A good understanding of parallel and concurrent programming is also a must.

Orientador

Alcides Fonseca
amaf@dei.uc.pt 📩