Andrew E. Santosa
Research Fellow
Department of Computer Science
National University of Singapore
Computing 1 #02-15, Law Link, Singapore 117590
Republic of Singapore
Phone: +65-6516-2792, Mobile: +65-9482-7396
FAX: +65-6779-4580 (Attn: Andrew E. Santosa/RF)
E-Mail:

Contents


Brief Bio

I am a professional researcher currently working on verification and analysis of programs (in general, anything that can be specified as recursive function or relation, both deterministic (sequential) or nondeterministic (concurrent), even with fairness requirement) by means of symbolic execution, especially using constraint logic programming (CLP). The basic approach is to invent novel non-heuristic techniques for search algorithms. The application area currently being targeted at encompasses the analysis of C source code, verification of real-time systems, and reasoning about omega automata (for which live sequence charts are instances). I am interested in literature, and as mentioned, I'm also doing a little bit of computer science.

My degrees are Doctor of Philosophy (Computer Science, National University of Singapore, 2008), Master of Engineering (Graduate School of Information Systems, University of Electro-Communications (UEC), 1999), Bachelor of Engineering (Computer Science and Information Mathematics, UEC, 1997).


Research

Program Reasoning in CLP

Here are some of the fruits of research projects led by Professor Joxan Jaffar and with the collaboration of Dr. Razvan Voicu in which I am a member. It resulted in my PhD thesis mentioned below.

Declarative Concurrent Programming

This work is the result of my collaboration with Professor Rafael Ramirez of Universitat Pompeu Fabra.

Selected Other Work


CLP(R) Bag of Tricks

Before I start, for those who want to learn constraint logic programming or Prolog, the fastest possible way known to me is to study the short book Professional Programmer's Guide to Prolog by A. G. Hamilton, published in 1989 by Pitman Publishing. It does not only teach you how to program, but how to program the logic programming way. You can always attach a counter at every recursion ala imperative for loops, but the book will teach you the more effective use of logic programming recursions.
Latest update: 9 October 2008. Contents created using Emacs, LaTeX, and Xfig.