|
@@ -1,5 +1,29 @@
|
|
|
% Why direct style instead of continuation passing style?
|
|
|
|
|
|
+%% Student project ideas:
|
|
|
+%% * high-level optimizations like procedure inlining, etc.
|
|
|
+%% * alternative back ends (ARM, LLVM)
|
|
|
+%% * lazy evaluation
|
|
|
+%% * gradual typing
|
|
|
+%% * continuations, exceptions
|
|
|
+%% * self hosting
|
|
|
+%% * I/O
|
|
|
+%% * foreign function interface
|
|
|
+%% * quasi-quote and unquote
|
|
|
+%% * macros (perhaps too difficult?)
|
|
|
+%% * alternative garbage collector
|
|
|
+%% * alternative register allocator
|
|
|
+%% * parametric polymorphism
|
|
|
+%% * type classes (perhaps too difficulty?)
|
|
|
+%% * loops (too easy? combine with something else?)
|
|
|
+%% * loop optimization
|
|
|
+%% * records and subtyping
|
|
|
+%% * object-oriented features
|
|
|
+%% - objects, object types, and structural subtyping (e.g. Abadi and Cardelli)
|
|
|
+%% - class-based objects and nominal subtyping (e.g. Featherweight Java)
|
|
|
+%% * multi-threading, fork join, futures, implicit parallelism
|
|
|
+%% * dataflow analysis, type analysis and specialization
|
|
|
+
|
|
|
|
|
|
\documentclass[11pt]{book}
|
|
|
\usepackage[T1]{fontenc}
|