Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 Ulrik Pagh Schultz's Home Page
Formerly (2000-2005) research associate professor (forskningslektor) at DAIMI (the department of computer
science at Aarhus University), in
Aarhus, Denmark. While at DAIMI, I was a member of the Object-Oriented Software Systems group,
manager of the B&O+OO project
funded by ISIS, and a
member of the PalCom project.
Domain-specific languages. I've done a bit of work in this direction, and am currently working on
the project Morphing Production Lines
where one of the goals is the developlment of domain-specific languages for controlling the ATRON
self-reconfigurable robot. In general, my interest in domain-specific languages is as a means
to provide better software engineering practices.
Partial evaluation and object-oriented programming. Specifically,
the former applied to the latter, which was the subject of my PhD
thesis. I focus on the Java
language, and on consolidating partial evaluation with object-oriented
concepts. There are some papers describing some of the work that I've done in
this area, accessible below.
Specifically, I work with partial evaluation of imperative languages,
object-oriented programming, design patterns and object component
architectures. I'm currently working on a next-generation specializer for Java, as
a successor to the JSpec prototype I developed during my PhD.
Java in embedded systems.
Object-oriented programming for low-end embedded systems. I've
worked on the JEPES
project (see LCTES'03
paper below). I'm currently working with a student to
develop a new compiler based on the same principles, with the ATRON modules as a target.
JavaCard. SmartCards are becoming more and more popular, and Java
is still an option for programming these devices. However, resources
(processor power and memory) are very limited. I've investigated code
compression for such devices (see TOPLAS'00 paper below).
Block structure. Block structure stands at the base of most
modern programming languages. Lambda-lifting is a well-known
transformation that removes block-structure, making programs flat.
The inverse transformation, dubbed lambda-dropping, restores program
nesting and makes use of the lexical scope thus created. For more
information, see TCS'00 paper below.
I'm currently a member of the program committee for ECOOP'07,
SAC'07(PL),
and TFP'07 (previously, I've also been on the program
committee for ESOP'06, VEE'05, PEPM'04, and PEPM'01). Moreover, I'm
currently also the workshop and tutorials chair for GPCE'07.
U.P. Schultz. Object-Oriented Software Engineering using Partial
Evaluation. PhD thesis, University of Rennes, December 2000. English
version available as IRISA PI 1395 (publication interne/tech report) in PS or PDF.
Partial evaluation and component-oriented programming:
U. P. Schultz. Black-box program specialization. Presented at
WCOP'99 (slides). Final version, PS or PDF.
Block structure:
O. Danvy and U.P. Schultz.
Lambda-Lifting in Quadratic Time. Published in Journal of Functional
and Logic Programming, 2004. Final version, available freely on-line from JFLP. (An earlier version appeared at FLOPS'02.)
G. Muller and
U. P. Schultz. Harissa: Efficient Java Execution by Global Program
Optimizations. Appeared in the March 1999 issue of IEEE Software
Magazine. Preliminary version available, PS or PDF.
Technical Reports and other unpublished material
U.P. Schultz. Object-Oriented Program Specialization: Aspects Into Aspects
- Or Maybe Not? Position paper at WGP'01 (an ECOOP'01 workshop),
2001. [PS] or [PDF]
Other On-line Material
U. P. Schultz. Explicit and Implicit Aspects of Scope and Block
Structure. Master's thesis, DAIMI, Department of Computer
Science, University of Aarhus, Aarhus, Denmark, June 1997. This work
was awarded "Best Danish master's thesis in computer science in the year of 1997"
by The Danish Computer Science Society (Dansk
Datalogi Selskab).
(Abstract)
(Postscript)
(DVI)