Our research aims at developing program development system utilizing techniques in programming languages such as type systems
and program transformations. Up to now practical systems like Eclipse provide basic refactoring functionalities such as renaming
identifiers. Our goal is to develop systems that provide various useful features such as context-sensitive completion of identifiers,
expressions, keywords, patterns for syntax, and various refactoring functionalities such as renaming variables and extracting
functions, by reusing compiler code as much as possible.
[Research topics]
(1) Theory and implementation of programming support
- Identifier completion, completing syntax, keyword completion, detecting and eliminating code clones, etc. for functional
langauges
+ Identifier completion for functional programs that do not have any type or syntax error up to cursor potision
+ Identifier completion for incomplete program text based on Yacc error recovery
+ Completing expressions in Java
+ Code minimization or code obfuscation
+ Everything else about programming support
(2) Theory and implementation of programming learning support
+ Visualization of overwriting the function return addresses for C programs
+ Elimination of goto statements for C (replacing with, e.g., while, break, and continue statements)
+ A tool for visualizing multithread C programs
+ Everything else about programming learning support
(3) Other topics each student considers
Evaluation method and criteria
A passing score of 60 is equivalent to participation in seminar activities (60% or more), submission of a research outline
that meets its quality criteria, and making a presentation on it.