Cristina David

ORCID: 0000-0002-9106-934X
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Formal Methods in Verification
  • Logic, programming, and type systems
  • Software Testing and Debugging Techniques
  • Security and Verification in Computing
  • Software Engineering Research
  • Parallel Computing and Optimization Techniques
  • Software Reliability and Analysis Research
  • Embedded Systems Design Techniques
  • Software System Performance and Reliability
  • Modeling and Simulation Systems
  • Natural Language Processing Techniques
  • Advanced Software Engineering Methodologies
  • Real-time simulation and control systems
  • Distributed and Parallel Computing Systems
  • Multi-Agent Systems and Negotiation
  • Robotic Mechanisms and Dynamics
  • Ocular Surface and Contact Lens
  • Corneal surgery and disorders
  • Manufacturing Process and Optimization
  • Image Processing and 3D Reconstruction
  • Machine Learning and Algorithms
  • Simulation Techniques and Applications
  • Advanced Computational Techniques and Applications
  • Teaching and Learning Programming
  • Advanced Database Systems and Queries

University of Bristol
2021-2023

Pro Optica (Romania)
2019

University of Cambridge
2018-2019

University of Pitesti
2019

University of Oxford
2013-2018

Google (United States)
2017

National University of Singapore
2007-2014

Weatherford College
2006

University of Manila
1994

In this work, we explore uncertainty estimation as a proxy for correctness in LLM-generated code. To end, adapt two state-of-the-art techniques from natural language generation -- one based on entropy and another mutual information to the domain of code generation. Given distinct semantic properties code, introduce modifications, including equivalence check symbolic execution. Our findings indicate correlation between computed through these correctness, highlighting potential quality...

10.48550/arxiv.2502.11620 preprint EN arXiv (Cornell University) 2025-02-17

Conventional specifications for object-oriented (OO) programs must adhere to behavioral subtyping in support of class inheritance and method overriding. However, this requirement inherently weakens the overridden methods superclasses, leading imprecision during program reasoning. To address this, we advocate a fresh approach OO verification that focuses on distinction relation between cater calls with static dispatching from those dynamic dispatching. We formulate novel specification...

10.1145/1328438.1328452 article EN 2008-01-07

Proving program termination is key to guaranteeing absence of undesirable behaviour, such as hanging programs and even security vulnerabilities denial-of-service attacks. To make checks scale large systems, interprocedural analysis seems essential, which a largely unexplored area research in analysis, where most effort has focussed on difficult single-procedure problems. We present modular for C using template-based summarisation. Our combines context-sensitive, over-approximating forward...

10.1109/ase.2015.10 article EN 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE) 2015-11-01

Modern control is implemented with digital microcontrollers, embedded within a dynamical plant that represents physical components. We present new algorithm based on counter-example guided inductive synthesis automates the design of controllers are correct by construction. The result sound respect to complete range approximations, including time discretization, quantization effects, and finite-precision arithmetic its rounding errors. have our in tool called DSSynth, able automatically...

10.1145/3049797.3049802 preprint EN 2017-04-13

Non-termination is the root cause of a variety program bugs, such as hanging programs and denial-of-service vulnerabilities. This makes an automated analysis that can prove absence bugs highly desirable. To scale termination checks to large systems, interprocedural seems essential. largely unexplored area research in analysis, where most effort has focussed on small but difficult single-procedure problems. We present modular for C using template-based summarisation. Our combines...

10.1145/3121136 article EN ACM Transactions on Programming Languages and Systems 2017-12-10

In recent years, separation logic has emerged as a contender for formal reasoning of heap-manipulating imperative programs. Recent works have focused on specialised provers that are mostly based fixed sets predicates. To improve expressivity, we proposed prover can automatically handle user-defined These shape predicates allow programmers to describe wide range data structures with their associated size properties. the current work, shall enhance this by providing support new type...

10.1109/iceccs.2007.17 article EN 2007-01-01

The HIP and SLEEK systems are aimed at automatic verification of functional correctness heap manipulating programs. is a separation logic based automated system for simple imperative language, able to modularly verify the specifications heap-manipulating specification language allows user defined inductive predicates used model complex data structures. Specifications can contain both constraints various pure like arithmetic constraints, bag constraints. Based on given annotations each...

10.1145/2048147.2048152 article EN 2011-10-22

Automated verification plays an important role for high assurance software. This typically uses a pair of pre/post conditions as formal (but possibly partial) specification each method before it is systematically verified. In this paper, we advocate multiple pairs to be associated with which provides way such used in more scenarios. Multiple specifications are heap-manipulating programs where they can precisely expressed using separation logic. work highlights the importance specifications,...

10.1109/hase.2007.19 article EN 2007-11-01

Conventional specifications for object-oriented (OO) programs must adhere to behavioral subtyping in support of class inheritance and method overriding. However, this requirement inherently weakens the overridden methods superclasses, leading imprecision during program reasoning. To address this, we advocate a fresh approach OO verification that focuses on distinction relation between cater calls with static dispatching from those dynamic dispatching. We formulate novel specification...

10.1145/1328897.1328452 article EN ACM SIGPLAN Notices 2008-01-07

In the current work, we investigate benefits of immutability guarantees for allowing more flexible handling aliasing, as well precise and concise specifications. Our approach supports finer levels control that can mark data structures being immutable through use annotations. By using such annotations to encode guarantees, expect obtain better specifications accurately describe intentions, prohibitions, method. Ultimately, our goal is improving precision verification process, making readable,...

10.1145/2048066.2048096 article EN 2011-10-22

We present a sound and automated approach to synthesizing safe, digital controllers for physical plants represented as time-invariant models. Models are linear differential equations with inputs, evolving over continuous state space. The synthesis precisely accounts the effects of finite-precision arithmetic introduced by controller. uses counterexample-guided inductive synthesis: an generalization phase produces controller that is known stabilize model but may not be safe all initial...

10.1007/s00236-019-00359-1 article EN cc-by Acta Informatica 2019-12-06

Termination analyses investigate the termination behavior of programs, intending to detect nontermination, which is known cause a variety program bugs (e.g. hanging denial-of-service vulnerabilities). Beyond formal approaches, various attempts have been made estimate programs using neural networks. However, majority these approaches continue rely on methods provide strong soundness guarantees and consequently suffer from similar limitations. In this paper, we move away embrace stochastic...

10.1145/3540250.3549095 article EN Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering 2022-11-07

In this article, we propose a unified framework for designing static analysers based on program synthesis . For purpose, identify fragment of second-order logic with restricted quantification that is expressive enough to model numerous analysis problems (e.g., safety proving, bug finding, termination and non-termination refactoring). As our focus programs use bit-vectors, build decision procedure over finite domains in the form synthesiser. We provide instantiations solving diverse range...

10.1145/3174802 article EN ACM Transactions on Programming Languages and Systems 2018-05-28
Coming Soon ...