
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.
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.
Faculty
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.
Faculty
Active students
Recent work
- Graph-driven security assurance in web-based software architectures
- Knowledge Graph-Driven Identification of Security Weaknesses in Web-Based Software Architectures
- Sarch: An Integrated Tool for Architecture-Based Security Assurance
- Sarch-Knows: A Knowledge Graph for Modeling Security Scenarios at the Software Architecture Level
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.
Faculty
Earlier work
- An information retrieval strategy for large multimodal data collections involving source code and natural language
- Building a Developer’s Reputation Model for Programming Contest Platforms based on Source Code Analysis
- A Strategy Based on Technological Maps for the Identification of the State-of-the-Art Techniques in Software Development Projects: Virtual Judge Projects as a Case Study
Timeline
2026
2025
- Análisis automatizado de comparación de productos con técnicas de procesamiento de lenguaje natural para artículos deportivos extraídos de canales de comercio electrónico
- Generación de recomendaciones automáticas de inversión en la Bolsa de Valores de Colombia mediante agentes autónomos de inteligencia artificial
2024
2023
2020
2019
- An information retrieval strategy for large multimodal data collections involving source code and natural language
- Building a Developer’s Reputation Model for Programming Contest Platforms based on Source Code Analysis
- Static Analysis of Python Programs using Abstract Interpretation: An Application to Tensor Shape Analysis
2018
- A Strategy Based on Technological Maps for the Identification of the State-of-the-Art Techniques in Software Development Projects: Virtual Judge Projects as a Case Study
- Fast Prototyping of Web-Based Information Systems Using a Restricted Natural Language Specification
- Social Engineering: Application of Psychology to Information Security
- Social engineering: psychology applied to Information Security
- Towards a developer’s reputation model based on source code features
2017
- Automatic Source Code Generation for Web-based Process-oriented Information Systems
- Automatic source code generation forweb-based process-oriented information systems
- Predicting the Programming Language: Extracting Knowledge from Stack Overflow Posts
- Prototipado automático de sistemas de información transaccionales usando una especificación en lenguaje natural restringido
2016
- Finding relationships between socio-technical aspects and personality traits by mining developer e-mails
- PAN at FIRE: Overview of the PR-SOCO track on personality recognition in source code

