Download Research Question SWUM Overview Motivation Preliminary

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Name mangling wikipedia , lookup

Programming language wikipedia , lookup

C Sharp syntax wikipedia , lookup

Abstraction (computer science) wikipedia , lookup

Java performance wikipedia , lookup

Object-oriented programming wikipedia , lookup

Parsing wikipedia , lookup

Structured programming wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Transcript
Sana Malik (2011), Emily Hill, Lori Pollock, K. Vijay-Shanker
Computer & Information Sciences
Sponsored by the
CRA-W DREU program
Applying a Software Word Usage Model to Other Programming Languages
Motivation
Taking SWUM From Java to C++
o Programmers spend 60-90% time maintaining
software
o Need automated support from software
engineering tools
Keywords
C++ Program
o C++ has additional keywords, e.g. virtual.
o Problem: Existing tools use either program structure
OR linguistic information
o Overall Research Strategy: Create a model that
captures both linguistic and structural information
about a program (SWUM)
1. Take a C++ program and
C++ Parser
parse it to make an
abstract syntax tree (AST)
o SWUM is currently implemented only for Java
SWUM Overview
SWUM Information
Collector
2. Give the AST to the
SWUM information
collector, which produces
the raw input for SWUM
Raw SWUM
Input
o Many functions are not contained within a class,
unlike Java.
o Similar implications as Java, no major differences
Constructors
o C++ also has destructors, which have a similar
signature as constructors.
Parameters
o C++ AST visitor does not visit parameters under
SWUM Extractor
SWUM Phrases
for C++ Program
Manual Analysis
Given the source code, SWUM captures program word
relationships and links them with program structure
Classes
Return types
Research Question
Current Focus: C++ method signatures
o Public and private are not explicit for each
statement in C++.
o Some class methods are defined outside the
class.
C++ AST
How can the SWUM implementation be
generalized for other programming languages?
Preliminary Observations
Changes to SWUM
3. Run the SWUM
extractor on this
information; this gives
SWUM phrases for the
C++ program
functions, which are necessary to extract relevant
information.
Outcomes
o Developed C++ information collector for input to
SWUM extractor
o Suggested SWUM modifications
4. Analyze each phrase
and note the changes that
must be made and which
SWUM components can
remain unchanged
Next Steps and Future Work
o Expand SWUM to include more features of C++
o Create an Eclipse plug-in from the SWUM for C++
implementation
o Investigate other programming languages
o Loosely typed languages, e.g. Python
http://hiper.cis.udel.edu