Paran Haslett

Please Note

ALERT! This person can no longer be contacted through the School of Engineering and Computer Science at Victoria University of Wellington

Paran Haslett profile picture

Research Interests

Adapting the viewed structure of Java code on a case by case basis for individuals whilst retaining a degree of collaboration.

Papers I am currently reading

Code Source Mining

Article: FRUIt

Uses data mining techniques to produce views inside an eclipse plugin.
Article: FRUIt

Uses data mining techniques to produce views inside an eclipse plugin.
Article: Mining Software Repositories with iSPAROL and a Software Evolution Ontology

http://dl.acm.org/citation.cfm?id=1268983.1269048

In this paper they present EvoOnt which is a common language useful for extracting informtion out of code repositories. As it is based on the existing Web Ontology Language (OWL) they believe that it is extendable. They claim that it can be used to detect bad smells in Java code. Although this would be useful as a tool to view existing code it only appears capable of representing subsets of a central code repository. Thats said the underlying language which they are using deserves further study as it may be able to help two seperate views negotiate what is common between them. This would be a step towards discovering code equivlencies.
Article: TARE An Exchange Language for Mining Software Repositories
http://dl.acm.org/citation.cfm?id=1137983.1137990

Another language useful for data mining. It differs in that it is not based on an existing language.

Another language useful for data mining. It differs in that it is not based on an existing language.

CSCW

What is CSCW?
Computer supported cooperative work

http://en.wikipedia.org/wiki/Computer-supported_cooperative_work

Article: CSCW and Education

http://dl.acm.org/citation.cfm?id=2441955.2442035
Article: Why CSCW needs Science Policy

http://dl.acm.org/citation.cfm?doid=2441776.2441902

Modeling and Graphical Code viewing

Article: An EXtensible Framework for providing Dynamic Data Structure Visualisations

http://dl.acm.org/citation.cfm?id=1028174.971433
Article: Constructing Multi-View Editing Eviroments Using MViews

  • Developing multiple grapical front ends for programming
  • SNART

It focuses on making each subset view a part of a central whole. It uses a central database to hold information about program structure and semantics. What I am attempting to do with my concept of views is to treat each view as its individual whole with items deamed to be equivilent syncronsised with the views they are equivilent to. There need to be some way of detecting these code equivlencies.

Futher articles about Mviews and other products that involve co-operating view can be found on John C Grundys home page

https://sites.google.com/site/johncgrundy/Home
Article: Software Dev enviroments on the web

http://dl.acm.org/citation.cfm?id=2384592.2384603
Article:Shrimp
Article: Towards a Prctical Visual OO Programming environment
What parts of Java could be reperesented by a visual represatation alone? Can all of the OO be represented by a visual design rather than by text

Program Slicing

http://pages.cs.wisc.edu/~reps/ http://en.wikipedia.org/wiki/Compare%2B%2B

http://discuss.fogcreek.com/joelonsoftware5/default.asp?cmd=show&ixPost=155585&ixReplies=18

http://www.drdobbs.com/tools/worlds-first-language-aware-source-code/240153121

http://stackoverflow.com/questions/77931/do-you-know-of-any-language-aware-diffing-tools

http://www.modelmakertools.com/structured-diff-viewer/index.html

Syntactically aware comparison tools

Beyond compare seems to use some of these features to compare similar files against each other (not sure how effectivly is does this however) http://www.scootersoftware.com/moreinfo.php

Altova also has a tool however it is focused on being solely xml aware http://www.altova.com/diffdog.html

With semantic merge the name says it all. Hopefully they live up to this reputation http://www.semanticmerge.com/ This also seems to be about semantic merge http://rlbisbe.wordpress.com/2013/04/15/semantic-merge-as-the-default-merge-tool-with-git-on-windows/

I am not sure if this is a new one or just is a rehash of semantic merge, SemanticMerge is adverstised on the side bar however some of the converstaion seems to be aimed at the effectiveness of plain text based merging. http://codicesoftware.blogspot.com/2013/04/put-your-hands-on-programming-language.html

blog on Semantic Conflict by Martin Fowler no less http://martinfowler.com/bliki/SemanticConflict.html

Git Diff implemantations (not semantic currently) https://www.kernel.org/pub/software/scm/git/docs/git-diff.html

Templates and Macros

Article: Behaviorial Similarity Matching using Concrete Source Code Templates in Logic Queries

http://dl.acm.org/citation.cfm?doid=1244381.1244398

This Paper is about identifing pattern with a particular code
Article: Code Templete Inference Using Langugauge Models

http://dl.acm.org/citation.cfm?doid=1900008.1900143
Article: Marco: safe, expressive macros for any language

http://dl.acm.org/citation.cfm?id=2367163.2367199

The reason why I was intersted in this paper is that one way to implement a seperate view would be to write programs that are responsible for assembling the program end product. The reason I have gone off that idea is that this still requires a central point that contains the "truth" while the seperate views are considered as being simply small subsets of that "truth". I still admire the ability to be language agnostic however.
Article: Towards Modular Code Generators Using Symmetric Language-Aware Aspects

http://dl.acm.org/citation.cfm?doid=2068776.2068782

Version Control

Article: Modern Version Control

http://dl.acm.org/citation.cfm?id=2382456.2382510
Article: Version Control in Crosscutting Framework-Based Development

http://portal.acm.org/citation.cfm?doid=1363686.1363862

This article highlights the some of the conditions where version control may not understand or cater for code structured in a particular manner. although they mention that this also could be an issue with Object Oriented Frameworks OOF they focus more on Aspect Oriented and crosscutting frameworks. They also have developed TOFRA to deal with changes in an Aspect. As a personalized view could be cross cutting this article could be of interest. The way in which aspect oriented programming links with vastly different parts of the same structure could be similar to how one personalized view would appear to another. The fact that a small configuration change within an aspect can affect vastly different parts of the application will cause similar complexities as changing items that might be related in one personal view but unrelated in another. Even worse would be changing items that appear unrelated in one view but are connected in another.

View Mapping Language

Article: Mappings the glue in an integrated system
  • View mapping language
  • VML
  • Code equivlency
Article:User-centered design of a visual data mapping tool
http://dl.acm.org/citation.cfm?id=2254556.2254646
Article:Domain-specific visual languages for specifying and generating data mapping systems
http://www.sciencedirect.com/science/article/pii/S1045926X04000102#

This is also by John Grundy of Mviews Fame
Article: Building Usage Contexts During Program Comprehension

Git Repo (mostly for experimentation)

https://github.com/paranhaslett/PersonalizedViews

Other Stuff

Bret Victor - Inventing on Principle

http://vimeo.com/36579366