Coat of arms of the Republic of Colombia
ES
Image: Unsplash — Chris Ried

Research line

Programming languages

We explore theoretical and practical aspects of creating programming languages.

How can programming languages and tools make software easier to build and understand? At PLaS we study the design, implementation and use of general-purpose and domain-specific languages, as well as the automated analysis and transformation of code. We aim to connect the foundations of programming languages with real problems in software development and maintenance.

We develop methods to express requirements, generate prototypes, analyze programs, and extract knowledge from code collections and from the information that developer communities produce. We combine compiler techniques, software analysis, natural language processing and machine learning to support these tasks.

Topic map
Code analysisReadabilityMultimodal IRStatic analysisReputationNL prototypingNLPAgents and AISecurity

Topics

General-purpose and domain-specific languages (DSLs)No works recorded

We study how to define and implement languages that express solutions clearly and in a way suited to each problem. We are interested in both general-purpose languages and domain-specific languages (DSLs), which embed the concepts and rules of a particular field. We investigate analysis and translation techniques to build language processors and tools that connect these representations with executable programs.

Recent work

No works have been recorded for this topic yet.

Languages for the software life cycle8 works

We explore specification and modeling languages that support the different stages of software development, from defining requirements to building and evolving applications. We aim to make requirements easier to communicate and to turn them into models and code that allow a solution to be validated early.

Automated code analysis and manipulation4 works

We develop methods to examine the structure and characteristics of code, identify patterns and perform automatic transformations. We study applications that combine static analysis and code representations with machine learning to support code comprehension, comparison and improvement, and to build tools that assist developers.

Software analytics / Big Code7 works

We investigate how to extract knowledge from large collections of code, repositories and developer collaboration spaces. We apply data mining, natural language processing and machine learning to relate code to the information that accompanies it. We seek to understand development patterns and use them to make knowledge about software easier to find, classify and reuse.

Timeline

  1. 2026

  2. 2025

  3. 2024

  4. 2023

  5. 2020

  6. 2019

  7. 2018

  8. 2017

  9. 2016