May 2012
M T W T F S S
« Apr    
 123456
78910111213
14151617181920
21222324252627
28293031  

Categories

Archives

The Good IR: Instructions and Values

This post is part of a seres: The Good IR (BasicBlocks and control flow instructions) The Good IR: Other Control Flow Structures The Good IR: Instructions and Values The Good IR: Reporting Semantic Errors via Type Checking The Good IR: Multiple Returns ——

It’s taken some time, but I think I’ve arrived at a reasonable [...]

The Good IR: Other Control Flow Structures

This post is part of a seres: The Good IR (BasicBlocks and control flow instructions) The Good IR: Other Control Flow Structures The Good IR: Instructions and Values The Good IR: Reporting Semantic Errors via Type Checking The Good IR: Multiple Returns —- In my last post on The Good IR, I had arrived at [...]

Transforming Heuristics

Many of the real problems in the world are NP. Things like Scheduling, Register Allocation, Routing packages, etc. In solving these really hard problems, we invent heuristics. Typically such heuristics are specific to the problem domain. For example, UPS might exploit certain characteristic about the geographical layout of the country; they face a certain subset [...]

The Good IR

This post is part of a seres: The Good IR (BasicBlocks and control flow instructions) The Good IR: Other Control Flow Structures The Good IR: Instructions and Values The Good IR: Reporting Semantic Errors via Type Checking The Good IR: Multiple Returns —- After parsing, each function can be represented as a ControlFlowGraph of BasicBlocks. [...]

Project Course in Web Services

I’ve just finished reading Phillip Greenspun’s experience report, Teaching Software Engineering, which details a project course in building Web Services. Even though I personally, hate the Web’s architecture (but that’s a rant for some other time), it still remains as THE most influentential and convenient place to showcase one’s work. It’s also convenient for shopping, [...]

Separating the Wheat from the Chaff

From Coding Horror: Separating Programming Sheep from Non-Programming Goats I learned of a paper, The camel has two humps, which describes a test that allows teachers to differentiate students likely to do well studying computer science from those who will likely never ‘get it’.

This paper sounds awfully similar to the physics conceptual test mentioned [...]

Business as an Investment

I finished my reading of Mike Maloney’s Guide to Investing in Gold and Silver, partially to get an idea of how he got started in the business of bullion. He’s actually had several businesses throughout his life, including one where he designed “stereo amplification electronics were selected as one of five permanent exhibits at the [...]

Learning the Abstractions

Since much of programming is about creating and manipulating abstractions, it figures that a large amount of education is going to be about leaning those abstractions. Things like classic data structures, the useful sloppiness of O-notation for algorithm analysis, and Design Patterns. But how should we introduce these things to our students?

Should you teach [...]

Object Oriented Compiler Architecture

Out of some curiosity, I quickly read this paper today:

The Object-Oriented Architecture of High-Performance Compilers, Lutz Hamel, Diane Meirowitz and Spiro Michaylov, Technical Report, Thinking Machines Corporation, 1996.

Even though they assume that the compilers internal representation is some kind of AST, the underlying lessons are worth communicating, and are applicable even if your [...]

Strong Typing for Security

I got into a mild argument about static vs. dynamic typing. I recognize that static typing can be verbose to the point of being repetitious. Take Java generics for example:

List<String> astr = new ArrayList<String>();

There really isn’t a great reason why the compiler can’t infer the type of the variable on the right hand [...]