School of Engineering and Computer Science

Engineering Center, Room 301
115 Library Drive
Rochester, MI 48309-4479
(location map)
Dean's Office: (248) 370-2217
Academic Advising: (248) 370-2201
SECSDean@oakland.edu

School of Engineering and Computer Science

Engineering Center, Room 301
115 Library Drive
Rochester, MI 48309-4479
(location map)
Dean's Office: (248) 370-2217
Academic Advising: (248) 370-2201
SECSDean@oakland.edu

Lunjin Lu, Ph.D.

Lunjin Lu, Ph.D.

Professor and Chair
Computer Science and Engineering Department
546 EC
(248) 370-2231
l2lu@oakland.edu
Website

Ph.D., Birmingham University (U.K.), 1995


  • Joined Oakland University in 2000
  • Member of ALP, ACM

Teaching

  • Programming languages
  • Theory of computation
  • Object Oriented Programming
  • Data structures
  • Algorithms
  • Parallel and Concurrent programming

Research

  • Software verification
  • Static Program analysis
  • Programming languages
  • Constraint and logic programming
  • Abstract Interpretation
  • Web application security
  • Software Security
  1. My work on semantic-based program analysis is based on the abstract interpretation approach. Abstract interpretation analyzes a program by simulating its execution on a non-standard domain called abstract domain. Since 1990, I have been working on semantics-based program analysis and its applications to logic programs. The topics I have worked on range from general analysis framework to new program analysis to efficient implementation.
  2. Constraint and logic programming provides more natural solutions to many problems than other programming paradigms could. From 1997 to 1999, I worked with the Starlog project at the University of Waikato. Starlog is a temporal logic programming language under development. Within the project, my work involves language design, semantics, program analysis, implementation, debugging, constructive negation and application programs.
  3. Declarative Debugging is a method to detect and diagnose bugs in programs. It doesn't rely on the programmer's understanding of the structure and the operational semantics of the program. What it requires of the programmer is his/her ability to answer queries about the intended semantics of the program. This is particularly valuable in functional, constraint and logic programming languages and when concurrent and parallel mechanisms are supported.
  4. Software development tools help improve software quality and software development productivity. In the past, I have developed prototypes of a few software tools. I would like to continue to explore the synergism between software development and research. In particular, I would like to further develop my software prototypes for program analysis and program debugging.

Selected Publications

1. L. Lu, A Polymorphic Type Dependency Analysis for Logic Programs,
New Generation Computing, 29(4): 409-444 (2011)

2. A. King and L. Lu, A Backwards Analysis of Constraint Logic Programs
TPLP 2 (4-5): 517-547 (2002)

3. L. Lu and A. King, Determinacy Analysis of Logic Programs, ESOP
2015: 108-123.

4. Astrid Younang, Lunjin Lu: Improving Precision of Java Script Program
Analysis with an Extended Domain of Intervals. COMPSAC
Workshops 2015: 441-446

5. S Kim, D-K Kim, L Lu and S Park, Quality Driven Architecture Develop-
ment Using Architectural Tactics, Journal of systems and Software, 82 (8):
1211-1231 (2009)

6. L Lu and D-K Kim, Required Behavior of UML Sequence Diagrams:
Semantics and Conformance, ACM TOSEM, 23 (2): 15:1 – 15:28, (2014)