page3
<number>/3
a constraint based change propagation lib
a delimited continuation implementation where continuations can be serialized into the database. It is used in our unique, continuation based Business Process Modeling solution.
a partial evaluator lib for Common Lisp
a presentation layer that can render a component based, object oriented description of a user interface to various backends (which includes XHTML with JavaScript, PDF and ODF). Expanding on my previous work in Java, this layer can render a navigable, editable, searchable and customizable presentation of any object-level data if there's also a formal description of the meta-level of the data. Using that it automatically provides about 80-90% of the user interface of typical enterprise projects, and therefore greatly reduces development time and maintenance costs.
a metamodel library to describe and manage models that in turn describe real-world objects and their relationships. For example if the object level domain is a set of users and their credentials, then the first meta-level is the common properties of such users, credentials and their possible set of relationships (e.g. users and credentials are two classes of entities that have a one-to-many association between them). The second meta-level in turn is a model that describes the common properties of all such first meta-level models (e.g. associations between entities have two or more association-ends that point to another entity and have other properties like cardinality, type, etc). This library helps to manage such tower of models, primarily by providing the necessary API for querying the meta-data. Services like our presentation layer can use that API to display arbitrary object-level data guided by the available meta-data, or to display the first meta-level of an arbitrary model in form of e.g. an entity-relationship diagram.
a rule based authorization system, that not only enforces the declarative rules, but also can render a human readable document describing the current privileges of the users of the system
We implemented two major projects using this framework. A short technical description of the bigger one follows (around 2007):
our customer was the Ministry of Municipalities of Hungary, I was the main contact person
replaced a full-paper process
very tight deadlines scheduled by the law, e.g. we only had three months between the first meeting with the customer and the system first collecting live data (that was already used in the planning of the 2008 budget of Hungary)
the system calculated the normative financing of the municipalities ($5b) based on the collected data, and the constantly changing proposals of the budget in the planning phase
about 5000 users with 500+ parallel at peek times
run on a Linux cluster that was administered by me
used PostgreSQL for data storage
every single software component was free and opensource
it was successfully taken over by another contractor after being operated by us for 2 years
Fundamentals of New Computing: a new computing system all the way from the metal in 20.000 lines of code; Alan Kay's current focus
Using Partial Evaluation for Compiler generation (e.g. this paper): Write an interpreter for a highlevel language using only LLVM primitives as the foundational building blocks, and write an interpreter for LLVM itself. Then this interpreter of the highlevel language can either be run in interpreted mode (using the LLVM interpreter), or be partially evaluated to yield a flat list of LLVM instructions, which in turn can be compiled to native CPU instructions and run directly on the hardware. It would make it trivial to switch between the flexibility needed for experimenting with language features (late binding of abstractions), and an optimized mode for performance (early binding of abstractions)).
Using highlevel languages like Scheme or Common Lisp in embedded environments
Reflection and metaprogramming (e.g. Reflection and its use)
Research Interests