Home » Posts tagged 'programming languages'
Tag Archives: programming languages
I will be giving a talk at the 2017 IBM Programming Languages Day on December 4 at the IBM T.J. Watson Research Center in Yorktown Heights, NY. I will be discussing our recent work on empirically assessing new language features proactively via automated refactoring.
I will be giving a talk at the New Jersey Programming Languages and Systems (NJPLS) seminar at Princeton University on November 20th, 2017 on Automated Refactoring of Legacy Java Software to Default Methods. Below is an abstract:
Java 8 default methods, which allow interfaces to contain (instance) method implementations, are useful for the skeletal implementation software design pattern. However, it is not easy to transform existing software to exploit default methods as it requires analyzing complex type hierarchies, resolving multiple implementation inheritance issues, reconciling differences between class and interface methods, and analyzing tie-breakers (dispatch precedence) with overriding class methods to preserve type-correctness and confirm semantics preservation. In this paper, we present an efficient, fully-automated, type constraint-based refactoring approach that assists developers in taking advantage of enhanced interfaces for their legacy Java software. The approach features an extensive ruleset that covers various corner-cases where default methods cannot be used. To demonstrate applicability, we implemented our approach as an Eclipse plug-in and applied it to 19 real-world Java projects, as well as submitted pull requests to popular GitHub repositories. The indication is that it is useful in migrating skeletal implementation methods to interfaces as default methods, sheds light onto the pattern’s usage, and provides insight to language designers on how this new construct applies to existing software.
Slides for our talk on default method refactoring at ICSE 2017 are now available on slideshare. (more…)
Graduate Research Assistant Position in Programming Languages and Software Engineering
I am currently seeking a graduate student interested in programming languages and software engineering research to commence at the Fall 2018 semester. Potential research topics include (static/dynamic) program analysis and/or transformation (e.g., refactoring) with a focus on helping to maintain and/or evolve large and complex existing software systems. Potential topics also include automated bug finding approaches and software security w.r.t. software evolution and/or component composition. The successful candidate will be expected to work on projects that normally yield open source developer tool research prototypes, typically plug-ins to popular IDEs, build systems, or static analyzers. More information can be found on the main supervisor’s web page.
Of particular interest are students interested in applying to the City University of New York – CUNY’s Graduate Center Ph.D. program in Computer Science concurrently with the research assistantship.
Please see below for additional details on applying. (more…)
Migrate-Skeletal-Implementation-to-Interface-Refactoring: A refactoring prototype plug-in for Eclipse that migrates Java skeletal implementations to enhanced interfaces.
Looking for an open source project to contribute to? Like refactoring and/or code analysis? Like Java? Come check out our new project on GitHub.
Migrate-Skeletal-Implementation-to-Interface-Refactoring – A refactoring prototype plug-in for Eclipse that migrates Java skeletal implementations to enhanced interfaces.
CUNY Diversity Projects Development Fund (DPDF) College Assistantship for Spring 2016 at New York City College of Technology
The City University of New York (CUNY) Diversity Projects Development Fund (DPDF) was established by the Office of the Vice Chancellor for Human Resources Management to support educational projects scholarly research, creative activities and other programmatic initiatives that promote multiculturalism, diversity and inclusion, affirmative action and nondiscrimination for the benefit of the University community.
The research project will consist of the beginning steps for creating a programming development environment particularly geared towards helping college students learn Computer Science and Software Engineering concepts. The application created will ultimately be used at New York City College of Technology (NYCCT) of the City University of New York for beginning programming classes to ease students into programming with an industrial programming language. (more…)
I am pleased to announce that our workshop proposal, the 2016 International Workshop on Language Modularity (LaMod’16), has been accepted for the 15th International Conference on Software Modularity (MODULARITY’16). I will be one of three organizers. More details, including a CfP, to follow.
The LSAMP program is now accepting applications for Spring 2016. Accepted students will receive up to $5000 to conduct research with a faculty mentor during the Spring 2016 semester and beyond. The deadline to apply is December 14, 2015. If you are interested in applying with myself as a faculty mentor, please complete my informational form. More information is listed below:
The LSAMP program is a NSF funded program that has the objective of increasing the numbers of minority students graduating with degrees in Science, Technology, Engineering and Math (STEM) fields. The program does this by giving eligible students a stipend and training as they work alongside a CUNY faculty mentor on a research project.
Eligibility and application instructions can be found on the attached pdf file but I still wanted to go over some important steps:
- Find a faculty mentor doing research. A list of such faculty mentors can be found here.
- Have the mentor agree to take you on in their lab for a research project (spanning 2 months for the summer).
- Create a research project with your mentor or work on a project your mentor is currently working on.
- Fill out and submit your application.
- Send in supporting documents (scanned) to email@example.com and CC firstname.lastname@example.org: Updated Transcript, Resume, Birth certificate, Passport or Green Card, Social Security Card.
You will be notified via mail of acceptance.
Please Note: If are interested in applying but do not currently have a mentor, please submit the Phase I application and leave the mentor information and project details parts blank. Once you have confirmed a project mentor and project, they must email the LSAMP office with their project title, project description, mentor’s name, and mentor’s email address. The mentor will then be manually sent the Mentor Endorsement link.
The for applications for Spring 2016 is December 14, 2015. So please be swift!
If you have any other questions do not hesitate to contact Marvin Bennett, NYCCT AMP Coordinator, email@example.com, P616, Thurs. 9am-5pm, V806 Weds. 9am-5pm, Phone: 718-260-5529, Fax: 718-260-5524.
I am currently seeking students interested in becoming “emerging scholars” this Spring semester and who are interested in programming languages and/or software engineering research.
The research would involve static analysis and program transformation to help maintain existing software systems. The work is normally yields developer tools that are plug-ins to popular IDEs like Eclipse and NetBeans. More information can be found on my research page and, particularly, my software page, which has some examples of previous tools. I would be interested in continuing some work on a refactoring tool that is currently under development.
The application deadline is September 30. Please complete this form if you are interested in applying.