Retired Projects

These are projects that are complete, dormant or otherwise no longer considered to be among the active and living projects.

Project: Network Modeling & Simulation

Purpose: Develop approaches for modeling distributed networking communications and simulate the resulting network  This project is mentioned here only as it relates to any support the ACT Lab can provide to the "real" project which is part of Villanova's Center for Excellence in Enterprise Technology (CEET).  CEET runs, among its research efforts, a large project that uses modeling and simulation techniques for verification of complex communications architectures.

Researchers: Nagesh Javali, Surya Kuchibhotla, Pavani Kolapalli, Tao Tao

Applications: Large scale distributed communications


Use Colored Petri Nets and other techniques.



  • Worldcomp - megaconference of 28 conferences in Las Vegas, June 26-29, 2006 (papers: Feb. 20, 2006).
  • ECMDA - The Second European Conference on Model Driven Architecture Foundations and Applications (papers: March 3, 2006).
  • ASE 2006 - 21st IEEE/ACM International Conference on Automated Software Engineering, Tokyo September 18-22, 2006 (papers: March 3, 2006).
  • MoDELS/UML 2006 - ACM/IEEE 9th International Conference on Model Driven Engineering Languages and Systems, October 1-6, 2006, Genova, Italy (papers: April 3, 2006).
  • COMPSAC 2006 - 30th Annual International Computer Software and Applications Conference, September 18-21, 2006, Chicago (papers: February 20, 2006).
  • ATVA 2006 - Fourth international symposium on Automated Technology for Verification and Analysis, 23-26 October 2006, Beijing, China (papers: May 20, 2006).
  • FM 2006 - Formal Methods 2006 Conference, August 21-27, 2006, McMaster University, Hamilton, Ontario, Canada (papers: Feb. 24, 2006)
  • FMICS 2006 - 11th International Workshop on Formal Methods for Industrial, August 26-28, 2006, Bonn, Germany (papers: June 2, 2006).
  • WS-FM 2006 - 3rd International Workshop on  Web Services and Formal Methods, September 8-9, 2006, Vienna, Austria (papers: Apr. 21, 2006).
  • SEFM 2006 - 4th IEEE International Conference on Software Engineering and Formal Methods, September 11-15, 2006, Pune, India (papers: April 4, 2006)

Project: Internet Safety

Purpose: Develop and present a live presentation and printed material to instruct parents about Internet Safety for the family

Researchers: Tom Way


This research focuses on the development of a presentation and corresponding web site material for the instruction of parents in principles of Internet Safety. This is a key survival skill in this age of information overload and ready access to vast amounts of information.  Often children are more Internet savvy than parents, and this research will attempt to make up for that gap in knowledge.


An Internet Safety presentation is available for interested groups, and has been presented a number of times in the past.

Companion web site: Dr. Way's Guide to Internet Safety

Project: Game Programming Platform

Purpose: Develop a ready-to-use Java game programming framework to enable students to explore game playing algorithms and concepts without the need to develop a complete game

Researchers: Joe Distasio

Applications: Computer game design and AI education


The next generation of computer game programmers are in high school and college.  This research reports on the development of a platform for teaching about many of the fundamental game design issues using an accessible and hands-on approach.  This Java software provides a programmer interface and basic graphics framework for the development of and experimentation with fundamental algorithms of artificial intelligence and animation.  It is targeted as a student's first exposure to game development.  The software implements a very basic game, with a programmer interface that allows modules to be developed and replaced.


  • Journal of Game Development - accepts ongoing submissions, first issue was March 2004.
  • The Labyrinth - prototype game programming platform, by Joe Distasio.
  • GameMaker - excellent tool for learning game programming.
  • Scratch - MIT Media Lab's programming language to make it easy for people of all ages to create interactive stories, animations, games, music, and art, and share them on the web.
  • RPG Maker - free software for creating role playing games [wikipedia].


  • Explore potential journal and conference articles
  • Continue development and refinement of system
  • Run pilot study using system to instruct game design lessons
  • Write and submit one or more papers as needed

Project: Information & Computing Fluency in College Curriculum

Purpose: Develop an introductory level college course in information and computing fluency

Researchers: Computing Fluency Working Group at Villanova

Applications: Education of students in vital life skills of information and computing fluency.


The project has a scope and reach far beyond the ACT Lab, with the above listed department working group bearing primary responsibility.  The ACT Lab serves to support the efforts of this group.

This research focuses on the development of an introductory level computer science course, targeted to a general college student population, that introduces the wide range of theories, concepts and practical skills needed to become an information fluent member of society. We are seeking funding to support the development of a CS0 information fluency course, which will cover topics applicable to all college students, including the theories and practices related to:

  • Critical thinking and information gathering techniques for the Internet
  • Networking - understanding how Internet, email and chat works, TCPIP
  • Spyware, malware, viruses, urban legends, debunking info
  • Web site design, HTML programming
  • Images, steganography
  • Cryptography and information security
  • Computer architecture & organization - what do the specs on the Dell website mean?
  • Mapquest, Google and other key information resources
  • Computer games
  • Binary, hexadecimal, decimal number representations
  • Installing and uninstalling programs, troubleshooting a PC

Proposed course name: CSC 1101 - "Information Technology"

Potential funding: Villanova Vital Mini-grant, etc.

Project: Highly Portable Disaster Recovery Network Backbones

Purpose: Develop a portable wireless network backbone node that can be quickly, easily and inexpensively deployed in a disaster recovery or other time-critical or short-duration networking scenario.

Researchers: Xavier Halloran

Applications: Disaster recovery, temporary workplace network support, network maintenance support, remote and autonomous network backbone design.


Customize off-the-shelf wireless routers by modifying control software and antenna design. Develop autonomous and low-power support using current battery and solar panel technology. Create model and simulation of node and network behavior and conduct field experiments using multiple units.


  • Design prototype node
  • Identify initial hardware requirements
  • Acquire hardware for prototype
  • Construct prototype
  • Create software model and simulation of node and network of nodes
  • Test and evaluation prototype using field tests and simulations
  • Correct design
  • Construct additional node devices
  • Deploy in field experiments
  • Write-up and publish results

Project: Partial Object Inlining

Purpose: Explore partial inlining within object-oriented languages

Researchers: Tom Way, Vijay Gehlot

Applications: Compiler optimizations for high-performance computing


Similar in concept to Partial Inlining is the object-oriented approach called Partial Object Inlining.  Plans are to extend our Partial Inlining research from C programs into Java and C++ in the near future.

Research subprojects:

  • Implementation of a partial object inlining algorithm within a research compiler - locate a candidate compiler framework that is easily extensible, design and implement the object inlining algorithm, test it, write it up, submit!  An alternate approach is implementation within a virtual machine where the partial object inlining is done dynamically (at run-time).


Project: Finite State Machine Simulation

Purpose: Develop an educational software tool for teaching students concepts of finite state machines

Researchers: Tim White


The concept of a finite machine is applicable to many computer science disciplines, as it expresses computing at a very fundamental level.  A useful tool to gain a deeper understanding of finite state machines and automata is to visualize them.  When a student can build and then run an FSM, the ideas become concrete and learning is enhanced.  This research is being done in collaboration with Tim White.

This project involves the implementation of an intuitive graphical interface for designing and simulating an arbitrary finite state machine.  The goal is the development of a Java program that students can download and use to help in learning in courses such as Discrete Structures, and to evaluate its value as an educational tool and write up the results of that evaluation as a research paper.


  • jFAST - the Java Finite Automaton Simulation Tool, by Tim White. Complete package available for download.
  • Visual and Interactive Tools - research that focuses on designing tools for visualizing and interacting with theoretical computer science concepts at Duke University (Dr. Susan H. Roger), including JFLAP (a package of graphical tools which can be used as an aid in learning the basic concepts of Formal Languages and Automata Theory).
  • Papers related to JFLAP - and associated tools, good source of target publications and helpful background
  • Finite Automata - web site of links.

Project: Digital Image Measurement Tool

Purpose: Develop a software tool for performing precise measurements within a digital image displayed on a computer

Researchers: Michael Cianni

Applications: Criminology and crime scene investigation, etc.


DIMT - the Digital Image Measurement Tool, an innovative application designed by Michael Cianni. The tool enables easy measurement of digital images (distances, areas, etc.) using a collection of virtual measurement tools. This software tool has applicability to surveying, criminal investigation, satellite and surveillance photo interpretation, to name just a few. Current plans are to enhance to existing tool, and conduct experimental research to measure the tools value in one or more of the applicable user domains. Is a digital measuring tool a valuable aide? And if so, which fields is it likely to benefit?


  • - Exchangeable Image File Format (EXIF), how extra info is stored with a JPEG from a digital camera
  • Lens FAQ - Photographic Lenses FAQ
  • Digital Photography images - gallery of sample images from various cameras
  • ExifReader - download (one of many such tools out there, including right-click Properties info in Windows XP)


  • Nikon D100 (Dr. Klassner) - does not record "Subject Distance" (probably same for all Nikon)
  • Canon Powershot A20 (acquire?) - DOES record "Subject Distance" (some other Canon models do not, A70, A95)

Project: Many-Core Architectures

Purpose: Develop general purpose programming language for next-generation many-core systems, in collaboration with the Carnap Project a the Institute for Advanced Science & Engineering.

Researchers: Tom Way

Collaborators: Carnap Project, Steven Ericsson-Zenith, Shannon Bailey, Cameron McInally

Applications: Compiler optimizations for high performance computing, machine description generation for reconfigurable computing.


Project has the aim of fully implementing a compiler for programming in Carnap, a general purpose programming language.  Carnap introduces the concept of the process oriented programming model that enables programmers to distinguish between data structures and processes acting upon those structures. The primary goal of Carnap is to ease application programming for future many-core and many-many core systems.

Carnap was designed by Dr. Steven Ericsson-Zenith, inventor of the EASE and occam programming languages, and was involved in creation of the MPI standard (ps).


Project Component Overview

  • Grammar - We have a working version of the Carnap grammar. It is available at It is based directly from the languages Ease and Occam. The theory behind Carnap comes directly from Hoare’s CSP.
  • Lexer and Parser - In order to generate the Lexer and Parser, we used a program called ANTLR v3 ( It is similar to YACC/BISON or javacc. ANTLR also gave us great control over the AST creation; however it makes the grammar a bit confusing to read.
  • Abstract Syntax Tree - Right now, the AST we are using is a bit verbose. We plan to optimize this later.
  • Semantic Analysis -We have just begun this stage of the compiler. In order to walk the tree, we have decided to go with the Visitor Pattern. This way we can add new features, implement optimizations and target different architectures with few changes to our code base. (svn)
  • Razor - Razor is our planned Intermediate Language. Steven has been working on this and may have a little more to say than I do.
  • Architecture - So far, there have been a few meetings with different companies working on many-core systems. STMicroelectronics has promised us a 48 core system within 18 months, with a framework very soon. We have also had meetings with Sun and INTEL, but no solid news yet. Other systems we are looking into are the Berkeley RAMP and the Transterpreter.

Final Stages of Compiler Development - Issues and Concerns

  • First, most important step, is to get the compiler done and into the hands of developers, and get it running on a generally available platform. Next we can address larger scale systems and more exotic or esoteric systems.
  • We have the fully checked canonical form of the program, contexts are implemented as Carnap processes and all interactions are channel interactions on these processes. This is what we have been calling the Carnap.razor level since it is essentially an extended form of Occam. My concerns at this level have to do with the code explosion during the rewrite and code distribution during scheduling.
  • We have a a Carnap.basis description that describes the target platform. This includes a description of the many many-core system if there is more than one processing device, and the many-core device architectures on each node (if there is more than one). As I see it currently, these devices can be either be general purpose cores or stream processors.
  • The final stage of code generation is a transformation of the Carnap.razor program into the executable form for the target described by Carnap.basis.
  • We should be able to compile applications so that they either allow resource competition (general purpose) or not (special purpose, exclusive access to hardware resources. Carnap.basis should tell the compiler what to do.

Current Research Tasks

  • Finish getting up-to-speed on project
  • Contribute to compiler implementation
  • Assist in development of approaches for runtime process scheduling, Razor IR, etc.

updated: 10/01/09