Research Areas
    Activities
   Conferences Hosted by SoC
  
Professional Services
    Research Funding
    Research Publications
    Internship
    Useful Links

 

  Home > Research
   
  Programming Languages and Software Engineering
 

Areas of research in Computer Science:

Programming Languages

Programming Languages and Systems Programming is a central and fundamental topic in computer science which concerns all aspects related to programming. The research in the Programming Language Group at NUS School of Computing includes research into particular programming languages, fundamental research such as type systems, program analysis and verification of software, paradigms of programming, and aspects arising from concurrent, parallel and distributed programming. There is also overlap with software engineering work in formal methods as described in the software engineering portion of this report.

Our research can be classified along the following dimensions:

  • Theoretical Foundations: models of concurrency, semantics and logics of programming languages, etc. 
  • Functional Programming: extension of type systems, enhancing functional programming languages, etc. 
  • Constraint Programming: constraint logic programming (CLP), algorithms for Constraint Satisfaction Problems (CSP), scheduling and timetabling algorithms, constraint solving frameworks and systems, etc.
  • Program Analysis and Transformations: abstract interpretation, reasoning about programs and partial evaluation.
  • Formal Methods: verification, model checking and theorem proving 
  • Dependable Software: detection of software vulnerabilities, systematic construction of dependable software, specification mining
  • Programming Paradigms: principles and practice of aspect oriented programming
  • Applications of Programming Paradigms: applications of constraint programming to reallife combinatorial problems such as sports scheduling, rostering, resource allocation, etc.
  • Programming for Web 2.0

Research Findings and their Applications

  • Scalable precision in analysing large software
  • Must/may analysis to distinguish real software bugs from false alarms
  • Achieving accurate heap analysis with separation logic
  • Type systems for rich languages, user-definable overloading and XML
  • Type error reporting
  • Dynamic program slicing
  • Visualisation for white-box tuning for local search algorithms
  • Enhancing constraint propagation for optimisation problems
  • Modelling and solving using ad-hoc constraints


Figure 1: Vis: a local search visualizer. Stochastic Local Search is often used for solving complex decision problems, e.g., in a resource allocation problem, we might need to decide in a production line when a particular component should be produced; in a vehicle routing problem, we might need to determine what a good schedule is for a group of vehicles to do pickup and delivery to minimise total time required. Although stochastic local search methods are often effective, they need to be tuned to get good results. The screenshot shows a prototype system which visualises the behaviour of a local search for a problem and this is used to improve the search.

Commercialisation

Constraint and Optimisation Technology: Martin Henz, in collaboration with FriarTuck Pte Ltd, has secured innovative projects in the reporting period. The most notably projects among these projects are a workforce management project with the Maritime Port Authority of Singapore (MPA) and an operating theatre scheduling project with the National University Hospital (NUH). The latter project is a joint venture with NUH, funded by the Infocomm Development Authority of Singapore (IDA), and includes Fujitsu and SAP as partners.

Research Highlights

JSlice (A. Roychoudhury) is the first dynamic slicing tool for debugging and the understanding of Java programs. JSlice is currently distributed on SourceForge and is deployed in 15 different countries for research and development. Places of use include universities (such as Carnegie Mellon Purdue and McGill), research labs (such as IBM TJ Watson) and companies (such as Agitar Software). The tool has also been adopted as a teaching aid in graduate courses (in universities such as North Carolina State University and University of Delaware).


The faculty members involved in programming languages research are:
  • CHIN Wei Ngan
  • HENZ Martin
  • JAFFAR Joxan
  • KHOO Siau Cheng
  • ROYCHOUDHURY Abhik
  • SULZMANN Martin
  • VOICU Razvan
  • YAP Hock Chuan, Roland



Software Engineering

Software engineering research covers techniques for developing high quality software and the use of formal methods. Software engineering research ranges from using web-based knowledge engineering (semantic web) to software reuse techniques for designing high-variability software components, and through to debugging. In formal methods, the research looks at the problems of specification and verification of software. There is synergy with the faculty and research in the programming languages in the areas of program verification, debugging and system specification.

The research can be classified along the following dimensions:
  • debugging
  • integrated modelling techniques
  • software specification
  • program and software composition
  • software engineering methodologies
  • software reuse
  • semantic web and ontologies

Research Highlights

  • JSlice: the first dynamic slicing tool for Java (see also the Programming Languages section) 
  • Meta programming for software reuse with XVCL 
  • Reasoning for the semantic web
  • Efficient specification miners

Figure 2: The specification of a piece of software tells you what the software is supposed to do - it can be thought of as a contract which defines the software. Unfortunately for many pieces of software, the specification may not have been written or is not available. This diagram shows a prototype system which is able to produce specifications directly from the software itself, i.e., it addresses the problem of Specification Mining. 

The faculty members involved in software engineering research are:

  • DONG Jin Song
  • JARZABEK Stanislaw
  • RAJAPAKSE Damith Chatura
  • WADHWA Bimlesh


© Copyright 2001-08 National University of Singapore. All Rights Reserved