Permalink
Browse files

Slides o/

  • Loading branch information...
1 parent e181fdf commit 711ecd9f316c90d1bde8dd44f1af67fb3b65a27d Amos Wenger committed Jun 20, 2012
Showing with 78 additions and 0 deletions.
  1. +3 −0 Makefile
  2. +3 −0 excerpts/level.ooc
  3. +12 −0 excerpts/logger-use.ooc
  4. +13 −0 excerpts/logger.ooc
  5. +47 −0 slides.md
View
@@ -3,6 +3,9 @@
report: excerpts graphs
pandoc -s report.md -H header.tex -V fontsize=12pt -V "documentclass=article" --toc --reference-links -o report.pdf
+
+slides: excerpts
+ pandoc -s -t beamer -H header-slides.tex slides.md -o slides.pdf
excerpts:
./build-excerpts
View
@@ -0,0 +1,3 @@
+Level: enum {
+ FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE
+}
View
@@ -0,0 +1,12 @@
+import os/Time
+
+main: func {
+ logger := Logger new(stdout)
+ logger log("Started at " + Time currentTimeMillis())
+
+ work()
+
+ time := Time currentTimeMillis()
+ logger log("Started at %d" format(time))
+}
+
View
@@ -0,0 +1,13 @@
+Logger: class {
+ level: Level
+ out: Stream
+
+ init: func (=out) {
+ level = Level INFO
+ }
+
+ log: func (msg, level = Level INFO) {
+ if (level <= this level)
+ format(msg)
+ }
+}
View
@@ -0,0 +1,47 @@
+% Specialization in ooc
+% Amos Wenger
+% June 8, 2012
+
+# The ooc programming language
+
+ooc is a general-purpose programming language. It was created in 2009 for an EPFL school project, and is now self-hosting, currently in v0.9.4
+
+Has been used to create games, power live streaming backend architecture (in production), write compilers, IRC servers, IRC bots, torrent clients, implement Lisp, JIT assemblers, package managers, and more.
+
+<https://github.com/languages/ooc>
+
+# Syntax - Class definition
+
+\input{excerpts/logger.ooc.tex}
+
+# Syntax - Modules, entry point, string formatting
+
+\input{excerpts/logger-use.ooc.tex}
+
+# Syntax - Enums, operator overloading
+
+\input{excerpts/level.ooc.tex}
+
+# C++
+
+ * C++ doesn't compile to C anymore
+ * C++ has more features
+ * C++ has templates
+
+# JVM
+
+ * Java runs on a VM (mostly)
+ * Java tries to stay away from platform-specific code
+ * Java has type erasure in Generic
+ * Scala also limited by the JVM, no reification
+
+# Identity specialized
+
+\input{excerpts/identity-int.c.tex}
+
+# Source size
+
+\includegraphics[width=10cm]{source-size-graph}
+
+# Performance gains
+

0 comments on commit 711ecd9

Please sign in to comment.