Curriculum Vitae, Mark Hills

From FSL

Jump to: navigation, search

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
Image:blank.gifMark Hills, Feng Chen and Grigore Rosu
Image:blank.gifTechnical report UIUCDCS-R-2008-2931, January 2008
Image:blank.gifPDF, TR@UIUC, BIB
A K Definition of Scheme
Image:blank.gifPatrick Meredith, Mark Hills, Grigore Rosu
Image:blank.gifTechnical report UIUCDCS-R-2007-2907, October 2007
Image:blank.gifPDF, TR@UIUC, BIB
An Executable Rewriting Logic Semantics of K-Scheme
Image:blank.gifPatrick Meredith, Mark Hills, Grigore Rosu
Image:blank.gif8th Workshop on Scheme and Functional Programming, DIUL-RT-0701, pp. 91-103, September 2007
Image:blank.gifPDF, BIB
A Rewriting Approach to the Design and Evolution of Object-Oriented Languages
Image:blank.gifMark Hills and Grigore Rosu
Image:blank.gifTechnical report Bericht-Nr. 2007-7, pp. 23-26, July 2007.
Image:blank.gifPDF, ECOOP'07 Doctoral Symposium Presentation, ECOOP'07 Doctoral Symposium, BIB
A Formal Rewriting Logic Semantic Definition of Scheme
Image:blank.gifPatrick Meredith, Mark Hills and Grigore Rosu
Image:blank.gifTechnical report UIUCDCS-R-2007-2877, July 2007
Image:blank.gifPDF, ZIP, TR@UIUC, BIB
KOOL: An Application of Rewriting Logic to Language Prototyping and Analysis
Image:blank.gifMark Hills and Grigore Rosu
Image:blank.gifRTA'07, LNCS 4533, pp 246-256, 2007
Image:blank.gifPDF, RTA'07 Slides, RTA'07, BIB
On Formal Analysis of OO Languages using Rewriting Logic: Designing for Performance
Image:blank.gifMark Hills and Grigore Rosu
Image:blank.gifFMOODS'07, LNCS 4468, pp 107-121, 2007
Image:blank.gifPDF, FMOODS'07 Slides, FMOODS'07, BIB
On Formal Analysis of OO Languages using Rewriting Logic: Designing for Performance
Image:blank.gifMark Hills and Grigore Rosu
Image:blank.gifTechnical report UIUCDCS-R-2007-2809, January 2007
Image:blank.gifPDF, TR@UIUC, BIB
A Rewrite Framework for Language Definitions and for Generation of Efficient Interpreters
Image:blank.gifMark Hills, Traian Florin Serbanuta and Grigore Rosu
Image:blank.gifWRLA'06, ENTCS 176(4), pp. 215-231, 2007
Image:blank.gifPDF, Experiments, WRLA'06, BIB
A Rewriting Based Approach to OO Language Prototyping and Design
Image:blank.gifMark Hills and Grigore Rosu
Image:blank.gifTechnical report UIUCDCS-R-2006-2786, October 2006
Image:blank.gifPDF, TR@UIUC, BIB
KOOL: A K-based Object-Oriented Language
Image:blank.gifMark Hills and Grigore Rosu
Image:blank.gifTechnical report UIUCDCS-R-2006-2779, October 2006
Image:blank.gifPDF, BIB
A Rewrite Logic Approach to Semantic Definition, Design and Analysis of Object-Oriented Languages
Image:blank.gifFeng Chen, Mark Hills and Grigore Rosu
Image:blank.gifImage:New.gif Technical report UIUCDCS-R-2006-2702, March 2006
Image:blank.gifPDF, TR@UIUC, BIB
Automatic and Precise Dimensional Analysis
Image:blank.gifMarcelo d'Amorim, Mark Hills, Feng Chen and Grigore Rosu
Image:blank.gifTechnical report UIUCDCS-R-2005-2668, December 2005
Image:blank.gifPDF, Sources, TR@UIUC, BIB
An Executable Semantic Definition of the Beta Language using Rewriting Logic
Image:blank.gifMark Hills, T. Baris Aktemur and Grigore Rosu
Image:blank.gifTechnical report UIUCDCS-R-2005-2650, November 2005
Image:blank.gifPDF, TR@UIUC, BIB
An Orchestration Language for Parallel Objects
Image:blank.gifL.V. Kale, Mark Hills and Chao Huang
Image:blank.gifLCR'04
Image:blank.gifPDF, 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.

Views
Personal tools