
Sistemas de Computação de Grande Escala e Propósito Específico, Linguagens e Ferramentas

Sobre a Área
O LaSPeCS centra-se no desenvolvimento de métodos, algoritmos, técnicas, ferramentas de software e compiladores para mapear computações em sistemas computacionais novos e emergentes. A investigação incide também sobre algoritmos, estruturas de dados e linguagens de programação, de forma a responder às características de hardware heterogéneo, paralelo e distribuído desses sistemas. Os resultados desta investigação permitem executar computações em dispositivos com fortes restrições (como dispositivos móveis e portáteis), mas também contribuem para uma computação mais eficiente em sistemas embebidos, na cloud e em ambientes de alto desempenho (por exemplo, em termos de consumo energético, escalabilidade e outros requisitos de performance), potenciando a competitividade das empresas, bem como a inovação e os avanços científicos em diversas áreas. Este ramo de investigação explora oportunidades para desenvolver bibliotecas e ferramentas de análise e transformação de código, dirigidas a várias linguagens, incluindo C/C++, Java, Fortran e bytecode de Android. Estas ferramentas são utilizadas, entre outras aplicações, para mapear computações orientadas a fluxos de dados e streaming em múltiplos destinos (por exemplo, extensões RISC-V personalizadas, CGRA), e para melhorar a segurança de código C existente, através da aplicação de análises inspiradas em linguagens e normas comprovadas (como Rust e MISRA-C).