Curriculum Vitae, Mark Hills
From FSL
Urbana-Champaign, IL | mhills@uiuc.edu | http://www.uiuc.edu/~mhills
Contents
|
[edit] Research Interests
I am interested broadly in the field of programming languages. My main research topic is using rewriting logic with programming languages to define executable semantics for the languages. This project also involves tools and better notations for working with the definitions, as well as methods for leveraging the language definitions in verification and analysis. In general, areas of interest include the following:
- Modeling language features and creating language design environments using rewriting logic and rewriting engines
- Design of object-oriented languages and language extensions
- Connections between the standard models of programming languages and features of algebraic specification languages
- Domain-specific languages
- Formal verification of language semantics using automated theorem proving
- Multi-paradigm languages; language extensions using features of different paradigms
- Models of concurrency; concurrent languages and language extensions
I am also interested in mathematics as it relates to computer science, including category theory and mathematical logic. I am a research assistant in the Formal Systems Laboratory. I was previously with the Parallel Programming Lab, where some of my research involved language support for parallel systems, especially those using an asynchronous message-passing model of communication.
[edit] Research Experience
[edit] Current Research
My current research is based around the concept of using rewriting logic to specify the semantics of programming languages. Rewriting logic provides an executable, logical framework for defining, executing, and analyzing programming languages and their programs. Important aspects of this research include developing improved tool support, defining existing languages to illustrate use of the technique (and verify we can handle even complex language features), creating new languages (often with a pedagogical focus), and investigating new language features (to illustrate the usefulness of this technique to language feature prototyping).
[edit] Past Research
While in the Parallel Programming Lab, my research was mainly focused on two areas: orchestration languages for asynchronous, message-passing systems, and parallel scientific computing applications using FEM methods with experimental advancing-front algorithms (my focus was on the parallel support for these methods). I am still involved at a low level with this work, but am mainly focused on what is listed above as current research.
[edit] Publications
- Pluggable Policies for C
Mark Hills, Feng Chen and Grigore Rosu
Technical report UIUCDCS-R-2008-2931, January 2008
PDF, TR@UIUC, BIB
- A K Definition of Scheme
Patrick Meredith, Mark Hills, Grigore Rosu
Technical report UIUCDCS-R-2007-2907, October 2007
PDF, TR@UIUC, BIB
- An Executable Rewriting Logic Semantics of K-Scheme
Patrick Meredith, Mark Hills, Grigore Rosu
8th Workshop on Scheme and Functional Programming, DIUL-RT-0701, pp. 91-103, September 2007
PDF, BIB
- A Rewriting Approach to the Design and Evolution of Object-Oriented Languages
Mark Hills and Grigore Rosu
Technical report Bericht-Nr. 2007-7, pp. 23-26, July 2007.
PDF, ECOOP'07 Doctoral Symposium Presentation, ECOOP'07 Doctoral Symposium, BIB
- A Formal Rewriting Logic Semantic Definition of Scheme
Patrick Meredith, Mark Hills and Grigore Rosu
Technical report UIUCDCS-R-2007-2877, July 2007
PDF, ZIP, TR@UIUC, BIB
- KOOL: An Application of Rewriting Logic to Language Prototyping and Analysis
Mark Hills and Grigore Rosu
RTA'07, LNCS 4533, pp 246-256, 2007
PDF, RTA'07 Slides, RTA'07, BIB
- On Formal Analysis of OO Languages using Rewriting Logic: Designing for Performance
Mark Hills and Grigore Rosu
FMOODS'07, LNCS 4468, pp 107-121, 2007
PDF, FMOODS'07 Slides, FMOODS'07, BIB
- On Formal Analysis of OO Languages using Rewriting Logic: Designing for Performance
Mark Hills and Grigore Rosu
Technical report UIUCDCS-R-2007-2809, January 2007
PDF, TR@UIUC, BIB
- A Rewrite Framework for Language Definitions and for Generation of Efficient Interpreters
Mark Hills, Traian Florin Serbanuta and Grigore Rosu
WRLA'06, ENTCS 176(4), pp. 215-231, 2007
PDF, Experiments, WRLA'06, BIB
- A Rewriting Based Approach to OO Language Prototyping and Design
Mark Hills and Grigore Rosu
Technical report UIUCDCS-R-2006-2786, October 2006
PDF, TR@UIUC, BIB
- KOOL: A K-based Object-Oriented Language
Mark Hills and Grigore Rosu
Technical report UIUCDCS-R-2006-2779, October 2006
PDF, BIB
- A Rewrite Logic Approach to Semantic Definition, Design and Analysis of Object-Oriented Languages
Feng Chen, Mark Hills and Grigore Rosu
Technical report UIUCDCS-R-2006-2702, March 2006
PDF, TR@UIUC, BIB
- Automatic and Precise Dimensional Analysis
Marcelo d'Amorim, Mark Hills, Feng Chen and Grigore Rosu
Technical report UIUCDCS-R-2005-2668, December 2005
PDF, Sources, TR@UIUC, BIB
- An Executable Semantic Definition of the Beta Language using Rewriting Logic
Mark Hills, T. Baris Aktemur and Grigore Rosu
Technical report UIUCDCS-R-2005-2650, November 2005
PDF, TR@UIUC, BIB
- An Orchestration Language for Parallel Objects
L.V. Kale, Mark Hills and Chao Huang
LCR'04
PDF, PPL Paper Page, LCR'04, BIB
[edit] Teaching Experience
CS421: Programming Languages and Compilers [Summer 2006]. Instructor for the course. Tasks include preparing and delivering lectures, developing homeworks and tests, working with students to develop appropriate course projects, grading homeworks, tests, and projects, and working with students to provide what I hope to be an effective learning environment. Students include a mix of undergrad, graduate, and online students.
CS422: Programming Language Design [Fall 2007]. Serving as a teaching assistant for the course.
CS422: Programming Language Design [Fall 2005]. Served as an unofficial teaching assistant for the course, delivered lecture on several occasions, provided support over the course newsgroup and in one-on-one meetings with students, graded homeworks and project submissions.
CS422: Programming Language Design [Fall 2004]. Served as a teaching assistant for the course, delivered lecture on several occasions, provided support over the course newsgroup and in one-on-one meetings with students, developed the course project, graded homeworks and project submissions.
[edit] Service
- Member of Grad Study committee (Fall 2005-Spring 2007)
- Organized local programming languages seminar/reading group (2004-present)
- Reviewed papers for conferences/workshops (PLDI, LOPSTR, FMOODS, CALCO, WRLA, LPAR, SOS) and journals (TCS)
[edit] Professional/Academic Organizations
| Member, ACM |
| Member, ACM SIGPLAN |
| Member, ACM SIGCSE |
| Member, ACM SIGSOFT |
| Member, IEEE Computer Society |
| 1991-1995, Member WIU Computer Science Association |
| 1994-1995, Member Upsilon Pi Epsilon |
[edit] Education
[edit] Department of Computer Science, University of Illinois Urbana-Champaign
Pursuing a doctor of philosophy in Computer Science since August 2003.
[edit] Relevant Course Work
- CS422: Programming Language Design
- CS426: Compiler Construction
- CS475: Formal Models of Computation
- CS476: Program Verification
- CS498: Topics in Automated Deduction (Inductive Proof, HOL)
- CS522: Programming Language Semantics
- CS524: Foundations of Concurrent Programming Languages and Systems
- CS526: Advanced Compiler Construction
- CS576: Topics in Automated Deduction
- CS598: Advanced Topics in Security
[edit] Honors
| 2003 | Computer Science Department Fellow, UIUC |
| 2005 | Excellent Teaching Assistant Award, for Fall 2004 |
[edit] Department of Computer Science, Western Illinois University
B.S. Computer Science, Minor in Mathematics, May, 1995.
GPA: Overall 4.0 of 4.0, Major 4.0 of 4.0
[edit] Relevant Course Work
- CS271: The Language C
- CS273: The Language C++
- CS276: The Language Lisp
- CS310: Assembly Language Programming
- CS380: Survey of Programming Languages
- CS410: Systems Programming
- CS411: Theory and Techniques of Compilers
- CS511: Operating Systems I (graduate level)
- CS548: Artificial Intelligence II (graduate level)
[edit] Honors
| 1995 | Graduated Summa Cum Laude, Honors Scholar in Computer Science |
| 1995 | Computer Science Departmental Scholar |
| 1994,1995 | Inforte Outstanding Computer Science Student |
| 1994 | Inducted into Upsilon Pi Epsilon Computer Science Honor Society |
| 1992 | Inducted into Phi Kappa Phi Honor Society |
| 1992 | Inducted into Phi Eta Sigma Freshman Honor Society |
| 1991-1995 | Dean's List, College of Applies Sciences |
| 1991-1995 | Semester Honors |
| 1995-1995 | WIU Foundation Scholarship Award Winner |
| 1991-1994 | Illinois General Assembly Tuition Waver |
| 1991-1995 | Multiple Other Merit-Based Scholarships |
[edit] Major Graduate Projects (Course Related)
| Course | Description |
|---|---|
| CS 524 (Foundations of Concurrent Programming Languages and Systems) | Secure Actors: developed security extensions to a Java-based actor language implementation, including secure communication via SSL, authentication, and role-based authorization for message sends |
| CS 576 (Topics in Automated Deduction) | Formalization of BabyIL: formalize the definition of the BabyIL language using Isabelle. This work is ongoing with Prof. Elsa Gunter. |
| CS 598 (Advanced Topics in Security) | Formalization of Web Services Protocols: formalize a web services based workflow protocol using the TulaFale web services security verification tool; this work is associated with the WSEmail research project under Prof. Carl Gunter |
==
[edit] Major Undergraduate Projects (Course Related)
| Course | Description |
|---|---|
| CS 548 (Artificial Intelligence II) | Adaptive Mutation and Genetic Algorithms: unpublished paper, discusses effects of mutation on the functioning of a genetic algorithm. |
| CS 548 (Artificial Intelligence II) | Neural Network Training Algorithms: A Comparative Analysis: unpublished paper, discussing alternatives to standard backpropagation training of a neural network |
| CS 460 (Artificial Intelligence I) | Genesis & OOGA: Two Approaches to Genetic Algorithm Implementation: unpublished paper, written with Richard Terlep, describing two systems for implementing genetic algorithms, including a discussion of how the systems work and examples of genetic algorithms |
| CS 380 (Survey of Programming Languages) | The DIPL Language: unpublished paper from the Survey of Programming Languages course, describes the syntax and semantics of a new programming language designed specifically for page layout |
| Independent Study | Developed enhancements to the Western Illinois Pretty Printer (WIPP), a printing application used to print source code. |
| Independent Study | Implemented enhancements to the virtual machine used in the CS410 course, System Software, and reimplemented the assembler for this machine in C based on the preexisting Pascal implementation |
[edit] Industry Experience
Independent Consultant, Chicago, IL
1/2003 - 8/2003
I led technology aspects of packaged software implementation and customization projects, including installation, tuning, environment certification, and custom development. Also, I created custom client applications and custom integration software, optimized databases, and trained system users.
Inforte, Chicago, IL
Manager, Advanced Technology Group 3/1999 - 12/2002
I investigated new technology solutions and new releases of partner software packages. This included developing prototypes of working systems and reusable software components that could then be used by project teams, and sometimes involved working directly with the vendors. This also included developing internal training, working with project teams on initial implementations, and individually mentoring team members.
Inforte, Chicago, IL
Senior Technology Analyst, 1/1998 - 3/1999
I investigated new technologies, especially focused on Microsoft-based technologies such as Windows application development tools, web site development tools, and distributed component models (DCOM/MTS). I also worked with project teams to provide project assistance.
Inforte, Chicago, IL
Consultant, 5/1995 - 12/1998
I worked on custom development and networking projects, and I led small project teams.


