List of Publications

With comments. These are not really abstracts, more like descriptions of the ``historic context'', i.e. the ideas current at the time those things were written. Everything is listed under the year of publication, not that of writing.

I started studying computer science at TU Berlin in August 1985; the first larger work by me was my "Vordiplom"-Work in 1987, of which no remaining copy exists. It was the description of the Ylem Scheme-in-Realtime-Forth system, which is partially described in the two 1991 papers.

I finished my diploma study within 10 semestes -- more or less the expected time, without having officially published anything. But in 1990, this was to change, as i got awarded an "Ernst von Siemens" stipend, which was to finance my PhD work for two years. Of course, two years grew into three, the thesis wasn't finished in time, and I only managed to rescue it 6 years after the start.


Markus Freericks, Alois Knoll:
ALDiSP - eine applikative Programmiersprache für Anwendungen in der digitalen Signalverarbeitung,
Forschungsberichte des Fachbereichs Informatik Nr. 1990/9, TU Berlin, 147pp.
Nothing more than my masters thesis (Diplom), stripped down a bit. Have you ever heard of anyone so utterly dumb to, in a fit a cleaning up, remove the TeX sources of his thesis after it was handed in? Well, that's me. Of course, the back-ups were several weeks out-dated. At the time, i wrote my texts on a Atari ST 1040 with LaTeX, and printed it using a NEC P6 dot-matrix printer. My harddisk had 20MB, and the different versions of the texts tooks up quite a large amount of space.

Alois Knoll, Markus Freericks:
Aldisp - An Applicative Real-Time Language for DSP Programming,
CIT/IEEE International Conference on Signal Processing, Beijing, 1990
Presented by Alois. Short paper on the thesis language. For all these IEEE conferences, no good postscript versions exist -- we actually had to send in a paper copy on special layout pages, at 120% magnification. Horrible work, much manual cut-and-paste. Added to this was the task of cutting down the paper to 4 pages (6 would have been adequate), resulting in a badly lay-outed text that couldn't really explain anything.


Rupert C. Nieberle, Stefan Koschorrek, Lutz Kosentzy and Markus Freericks:
CAMP: Computer-Aided Music Processing,
Computer Music Journal Vol. 15 No. 2 (Summer 1991)
Written in summer '89, this describes the work environment of the computer music group I was working with in late 88'/early '89. I only heard of the existence of these two papers in 1994! Originally, the second paper was presented at the ICMC'89 conference in Columbus, Ohio. For some reason, the manuscript arrived too late -- this was before widespread adoption of email! --, and it wasn't included in the proceedings -- though Rupert and I made a "studio presentation". As a compensation for the lost paper, we were promised an article in the CMJ.

Rupert C. Nieberle and Markus Freericks:
Extending an Interactive Music Environment,
Computer Music Journal Vol. 15 No. 2 (Summer 1991)
Describes my "Ylem" Realtime-Scheme-in-Realtime-Forth language extension, which I wrote as a MS thesis (Vordiplom). Of course, I optimized too much, with the result that the final implementation ran quite fast, but the language kernel was nearly 100% 68k assembly language. A year later, the underlying Forth system (Formula, by Ron Kuivila and Dave Anderson), was rewritten and vastly improved (before, it was cooperatative multitasking, now it is preemptive), but this broke most anything of Ylem: before, task switches were explictit and I could mostly ignore them in the GC and the interpreter state; now, explicit locks were needed. Since I wasn't working actively with Ylem anymore, it became a typical "orphan language".

Alois Knoll, Markus Freericks:
An applicative real-time language for DSP-programming supporting asynchronous data-flow concepts,
in: Microprocessing and Microprogramming, Vol.32, No. 1-5 (August 1991 - Proceedings Euromicro '91), pp. 541-548
Elaborates on the asynchronous concepts of ALDiSP.

Alois Knoll, Achim Schweikard, Markus Freericks:
Eine datenflußorientierte, funktionale Programmiersprache für die Echtzeitdatenverarbeitung,
in: Prozeßrechensystem '91, Proceedings, Berlin, Februar 1991,
Springer Informatik-Fachberichte 269
Mostly the same as the last entry, but re-written in German.

Markus Freericks:
The nML Machine Description Formalism,
Forschungsberichte des Fachbereichs Informatik Nr.91-15, TU Berlin, 1991, 41pp.
The brain-child I am proudest of, since it is used by the largest number of people and doesn't succumb to featuritis in the way ALDiSP does. Still, there are a lot of typos and small omissions in this version of the nML report. Also, the yacc grammar was a mess. The report underwent constant revision and some minor version numbers, aquired appendices and lost them again.


Markus Freericks, Alois Knoll, Lawrence Dooley:
The Real-Time Programming Language ALDiSP-0: Informal Introduction and Formal Semantics,
Forschungsberichte des Fachbereichs Informatik Nr.92-26, TU Berlin, 1992, 80pp.
Contains most of my PhD thesis up to that point, especially the large section containing the formal semantics of ALDiSP, and many more examples. The formal semantics was rewritten quite a lot later on, though, and the examples section is omitted from the thesis. This is still the best description of ALDiSP you can find. Everything else is too cursorily or too technical.

Lawrence S. Dooley, Alois C. Knoll, M.A. Wahab, Andreas Fauth, Markus Freericks:
A Novel Approach to the design of DSP Systems Using Minimum Complexity Finite State Machines,
1992 IEEE International Symposium on Circuits and Systems (ISCAS'92)
Presented by Alois, I think. Explores a nifty idea originally of Alois and Lawrence, namely to specify a DSP system by an automaton. Things like unwanted resonances and overflow/underflow bugs might then be detected by inspection of the automaton, and removed from it by re-mapping the concerned translations. The result can then be used to generate VLSI. Andi and I implemented some of this thing to test out the ideas. Of course, it was slow for anything beyond 3-bit arithmetic. Also of course, we didn't mention that quite so explicitly in the paper

Markus Freericks:
The nML Machine Description Formalism (updated Version 1.2),
in: ESPRIT-II Project 2260 SPRITE Progress Report (Incl. Addendum 2 to T.A. 3) for Period June 1992-November 1992, Report No. PR-4.2, 1. Dec. 1992, Author: SPRITE Consortium, Editor: Patrick Pype (Project Manager)
Has most of the errors and omissions of the first report removed. At this point, nML is quite stable and we start to think of extensions. Also, it is now an official specification language in the CBC trajectory. (ANSI-nML can't be far away! ;-)


Markus Freericks, Alois Knoll:
Formally Correct Translation of DSP Algorithms Specified in an Asynchronous Applicative Language,
1993 International Conference on Acoustics, Speech and Signal Processing (ICASSP'93), Minneapolis, April 27-30, 1993
Describes the basic approach of the ALDiSP compiler, namely to turn an interpreter (which has to be correct, since it is derived from the semantics) into a compiler by adding partial evaluation to it. Yet another IEEE-style horror-layout paper.

Markus Freericks, Alois Knoll:
Writing and Compiling DSP Algorithms in an Asynchronous Applicative Language,
International Conference on Signal Processing '93 (ICSP'93), Beijing
Presented by Andi, who was in Peking anyhow to present a CBC paper. Mostly a re-hash of the "examples" section in the 92-26 TR. Yet another IEEE-style horror-layout paper, with additional problems due to chinese printers.

Andreas Fauth, Markus Freericks, Alois Knoll:
Generation of Hardware Machine Models from Instruction Set Descriptions,
in: VLSI Signal Processing, VI, Eggermont (eds), IEEE Signal Processing Society, 1993
This is a paper both Andi and I are quite proud of. We had both been thinking about nML internal representations for a long time (a year? more?). Finally, we sat in the TU for a long weekend and discussed the Right (TM) Way to represent nML descriptions using an Grand Unified Model. As a result, we now have a concept of generating hardware directly from nML, which also proves to be the foundation of the timing and pipelining models (Andi's thesis will be on this). BTW: this workshop, while being an IEEE conference, allowed a decent publication format - no page restrictions, and we could send in postscript.

Frank Löhr, Andreas Fauth, Markus Freericks:
SIGH/SIM - An Environment for Retargetable Instruction Set Simulation,
Forschungsberichte des Fachbereichs Informatik Nr.93-43, TU Berlin, 1993, 33pp.
Describes Frank's Studienarbeit on an nML simulator, implementing many of the ideas of the VLSI'93 paper.


Stephan Rebbelmund, Andreas Fauth, Markus Freericks:
The Inspector Tool
in: ESPRIT-II Project 2260 SPRITE Final Report, etc.pp.
I am not quite sure whether that made it out of the house. Have to look it up sometime. I don't think i ever laid my eyes on that final report. I invested a lot of time and energy in the inspector tool, this is no vanity report -;)

Markus Freericks, Andreas Fauth, Alois Knoll:
Implementation of complex DSP systems using High-Level Design Tools,
in: Signal Processing VI: Theories and Applications,
M. Holt, C. Cowan, P. Grant, W. Sandham (Eds.), pp. 1329-1332,
(Proceedings of EUSIPCO-94, 7th Europ. Signal Processing Conference, Edinburgh, Scotland, UK, 13-16 Sept. 1994)
Describes the CBC system in its final form.

Markus Freericks, Andreas Fauth, Alois Knoll:
A Basic Semantics for Computer Arithmetic,
Technischer Bericht 94/6, Technische Fakultät, Universität Bielefeld
A formalization of the boring details surrounding computer arithmetic. Partly a formalization of things such as "carry", "overflow", "2-s complement", "saturated arithmetic" and so on. Still not finished. Have to do it one of these weeks.


Andreas Fauth, Johan Van Praet, Markus Freericks:
Describing Instruction Set Processors Using nML (Extended Version),
to be published in: Proceedings of the EDC'95 (Europ. Design Conf.)
Was presented by Johan, I think. Describes the then-current status of the nML, as it was used by IMEC and by us. Also says quite a few words on pipeline modelling, and control flow.


Markus Freericks:
Design and Implementation of a Partial Evaluation-Based Compiler for an Asynchronous Realtime Programming Language
Dissertation, Universität Bielefeld, 1997
My PhD thesis, started in 1991, 70% finished in 1992, 99% finished in mid-1995, twiddled around for a year, submitted in October 1996, presented in September 1997, printed in April 1998. Truly "PhD theses are not finished, but abandoned". "Only" 171 pages, but i have written and re-written every one of them quite a few times.

The latter half of the year was spent specifying a scalable, distributed application server design. Not publishable work.

1997 - 2019

The following years saw me writing parts of an operating system for a mini-computer (the MultiKit) in Assembly and C; server- and client-software for a 2½D-graphical chat game (the Welt am Draht), a Perl-based web site generator used to generate the main public web site of a large car manufacturer, the template generation engine of a CMS used by a german news website, and 7 successive generations of an online car configurator (one Perl-based CGI version that evolved a lot over the years, one Java version that used JSP as its templating language, a Java version that uses Velocity templates), and a version that contains two parts: static content is written into a Redis DB, which is then used by a CMS to publish cacheable pages; and dynamic content updates are fetched using requests that return JSON. In support of the configurator, i also developed a dependency injection framework that supports feature scopes and multi-tenant application instances with in-flight updates.

But none of that can be published.