Back to bookmarks

Back to index

Bookmarks: Software Engineering, Technologies, Programming


MetaLogical reflection


Categorical reflection


Computational reflection; open implementation; meta-level architectures and MOP

Ca va sans dire, have a look at TUNES - Computational reflection at Tokyo University Yonezawa Laboratory. A starting point for references on computational reflection - Guaraná is a object-oriented reflective system based on Kaffe. With documentation, it has its own MOP - OpenJit is a JIT for a reflective Java. Open source license for non commercial use - Tsukuba University labs, where OpenC++ and OpenJava were developed by professor Chiba's workgroup. OpenC++ and OpenJava are MOP-enhanced version of the well-known object-oriented languages - Bibliography on computational reflection - Some links (many obsolete, many useful) - Brian Cantwell Smith, which "invented" computational reflection - Brian Cantwell Smith homepage at Indiana University - "A Lisp through the Looking Glass", J.C.G.Sturdy's PhD thesis (in HTML, many formulas still missing. Why not in ps?) - Reflection at Maastricht University. With implementations of several reflective historical languages (3-lisp, Ir, Electra) - Computational reflection on IEEE Computer - Reflective middleware on IEEE Computer

Conferences - Reflection 96. Online proceedings! - Reflection 99 - Reflection 2001. Online proceedings! - ECOOP'2000 Workshop on Reflection and Metalevel Architectures. Online proceedings!

Projects - Progetto Tosca (in Italian) - Formal self-reference in artificial intelligence (FS-AI)

People - Shigeru Chiba - Walter Cazzola. Also with projects for students on reflection - Damjan Bojadziev. See also project FS-AI above - Fausto Giunchiglia, work on frameworks for metalogical theories and on reflection principles - Solomon Feferman's homepage. Feferman is one of the most important logicians, with a lot of work done on metalogic

Proof-Carrying Code, Typed Assembly Language, Typed Intermediate Language - Peter Lee's page on PCC

Reconfigurable Computing - This company produces reconfigurable machines based on FPGA. Have a look at the "Technology" section, particularly the paper titled "Theory of Hypercomputing" - Virtual Computer Corporation



See also Merlintec, under language Self (their processor is dynamically programmed on a FPGA). There's also an article on the June 1997 number of Scientific American

Software Engineering, programming and design paradigms and methods - Peter Wegner's homepage: Interaction, active documents, theory

Reactive programming - Reactive programming at INRIA, project Mimosa - Reactive asyncronous objects by Frederic Bertrand

Concurrency - Home page for the book "Real-Time Systems: Scheduling, Analysis, and Verification", by Albert M. K. Cheng. Not much stuff, some slides


Soft mobility (code/status) - Autonomous Mobile Objects, a project of Tokyo University Yonezawa lab. Among the targets: MOA, Moving Ordinary Applications - muCode is a Java middleware whose API offers a minimal set of primitives for both code and status mobility

Strong mobility (device)


Data-based coordination - Linda: The original data-driven coordination approach. Tuples are asyncronously inserted in a common space, which can be probed or queried by pattern matching - Lime extends Linda by considering mobile processes, allowing tuples to follow the life cycle of given processes and introducing reactive programming - KLAIM - Gianluigi Zavattaro works on coordination models. With online papers

See also MetaKLAIM under Moggi's papers (see above)

Formal methods - The WWW virtual library: Formal methods. Everything on Z, B-method, ASM, etc - Some Papers by Rob Arthan, all on Z and formal methods

Model checking, verification, et cetera - Extended Static Checking for Java. It uses program verification techniques to rule out some common errors, but it feels like a type checker to users

Architectures - ADL definition and basic bibliography - List of ADLs at SEI - Software Architectures course at University of Waterloo, CA (w/slides) - Piccola is a small composition language based on π-calculus, whose aim is helping in defining high-level connectors for composing and coordinating components written in other languages

People - Nenad Medvidovic, author of "A Classification and Comparison Framework for Software Architecture Description Languages" - Jan Bosch

Patterns - Wiki on patters. Also, has a nice quick explaination of fixpoint combinators (, and much discussion on functional programming (

Refactoring - Refactoring home page - Refactoring functional programs; vdiff

Interfaces and programming by example - Homepage on programming by example. With link to online book "Watch what I do" - Lieber is a researcher at MIT on interactive interfaces - The demonstrational interface group at Carnegie Mellon - Garnet, the Carnegie Mellon's UI toolkit for LISP, is now open source at Sourceforge - FiShell, a logic programming shell - Views

Programming languages - Resources for Programming Language Research. Really comprehensive - Programming Languages Theory: A resource page - PAG is a generator of program static analyzers. PAG/WWW is a web simple interface to experiment with PAG - Lectures on Curry-Howard isomorphism - A course on advanced dynamic OO languages ad MIT, with slides!! See also the Goo programming language below - Formal methods course: OO programming, by Cosimo Laneve. Focuses on foundational aspects, with papers online - (in Italian) Un confronto tra OOP e programmazione generica, articolo di Carlo Pescio


C++ - The C++ Virtual Library

Smalltalk - Squeak, a Smalltalk written in itself. Completely free - The Squeak Swiki: A wiki-wiki web written in Squeak for Squeak users

Self - Self language - A Self Swiki at Merlintec - Merlintec develops computers interely based on Self - dSelf: An extension to the delegation and prototype-based object-oriented language SELF. It adds distributed objects and transparent remote reference resolution to the languages. As a consequence, dSelf facilitates distributed inheritance and instantiation mechanisms

Other - Goo is a simple language derived from Proto, a language used for an advanced course on programming languages at MIT (see above for the link) - TOM, an object oriented language. A GTK library for TOM exists - Pizza is a Java extention with parametric polymorphism, first-class functions and class pattern matching. GJ is a Java extension supporting generic types - Beta language - Oberon and follow-ups (Active Objects)

Functional - comp.lang.functional FAQ - Joy language; With theory - The Evolution of a Haskell Programmer, some humor on (over)complex implementations of the factorial function with pointless recursion

LISP - Everything about LISP - The Association of LISP Users site - GNU CLISP, an ANSI Common LIPS - CMUCL: A high-performance, free Common LISP implementation. No port to Windows - Pascal Costanza's Highly Opinionated Guide to Lisp. Many resources - Paul Graham's home page. A LISP guru, has written interesting books and columns. His book "On LISP" is freely downloadable from the site

Scheme - Teach Yourself Scheme in Fixnum Days - Info on Scheme - Scheme users site, full of resources - An Introduction To Scheme And Its Implementation - Home page for the book "Structure and Interpretation of Computer Programs", aka "the wizard book". The fundamentals of programming taught with the help of Scheme - MIT Scheme - Various implementations of Scheme like DrScheme (graphical, thought for teaching) and MzScheme (more lightweight), books on Scheme, and more - Bigloo is a Scheme implementation by Manuel Serrano at Inria, with many features

ML and derivatives - Standard ML of New Jersey (SML/NJ) - CAML and Objective CAML - MetaML, ML with metaprogramming. Requires SML/NJ - Mustang: Stage computation; The project which generated MetaML - More from the same guys: A taxonomy of meta-programming systems

Haskell - Haskell language homepage

Other - The Unlambda Programming Language is a language thought to yield completely unreadable programs: It is pure SKI calculus without abstraction - and with call/cc. The author's homepage (remove "programs/unlambda/") is full of interesting things (quines, call/cc explanation...) - A page on hybrid logic-functional languages (see also Curry) - Curry is a hybrid logic-functional language - Fish is a functional language based on shapes, thought mainly for matrix applications and which claims to be ultrafast. Many interesting links at his father's homepage (remove "FISH/")

Logic - A course on logic databases (Datalog), with theory - GNU Prolog - SWI Prolog - Ciao Prolog

See also Curry, a functional-logic language, under the functional languages section

Rule-based - CLIPS is a "historical" rule-based language for expert system production. Free license - Jess is written in Java and recognizes CLIPS

Other - Funk is a minimalist rewrite-based language - `C (read tickc) is a language with dynamic code generation - Felix is a language with C/C++ syntax, ML types, pattern matching, garbage collection and "ultra light threads" - Flare Programming Language is a proposal for an "annotative language", especially flexible. Not very clear the goals, many discussion but not implemented yet

Technologies and formats

.NET - on .NET ECMA standards - Shared source CLI (aka "rotor") - Peter Drayton's page on CLR - Active Oberon for .NET - mono is an open source implementation of the .NET platform, sponsored by Ximian - DotGNU is a project aimed at building an "operating system for the internet" - a collection of tools that allow software components to interact with each other over the internet. Among the subprojects the so forth most complete is Portable.NET, a free platform for compiling and executing .NET programs, and phpGroupware, a multi-user web-based groupware suite written in PHP

Web formats and languages - Official PHP homepage. - Programmers' Perl resources (.com) - More programmers' Perl resources, with cgi scripts for many applitacions - Web developer resource; Tutorials on Javascript, DHTML, Java, Perl, CGI, and almost anything else

DHTML - Interesting stuff for DHTML - Dynamic Duo: one of the best tutorials on multiplatform DHTML - Another site, rich of links - Many informations on browser interoperability issues and compatibility charts - The Netscape DHTML manual

Look also at webopaedia under "DHTML" for more links, and the w3c homepage for standards.

Unicode - Authoritative and complete. Full downloadable specs - Good FAQ on UTF-8

Retrocomputing - Sinclair User Magazine Online, the archive of the magazine. Not everything is present, however a notable piece of retrocomputing - Emulators (console, home computers, etc.)

More Tech - Using free and discarded/outdated technology for building computing devices - A resource for those interested in all forms of solar power and renewable energy - Free hardware. Utopia webring, with many free hardware projects

Valid XHTML 1.0!

Updated: 2004-01-22 21:04 UTC