Feeds:
Posts
Comments

Archive for the ‘Technical’ Category

Google Wave is currently in invitation-only, preview mode, so any judgment of its value in finished form is potentially premature. Two initial impressions stand out and seem often repeated. Firstly, the small set of initial invitees has the effect of limiting the kinds of conversations and the types of uses to which Google Wave can [...]

Read Full Post »

In the last post, my home network was a single sub-net and supported wired and ABG wireless devices including a Wii, XBox 360, one wirelessly-connected Color/FAX printer, wired LaserJet printer, two wired desktops, two wireless desktops, and three laptops. In the last week, I’ve replaced this network piece-by-piece as follows:
First, I added a LinkSys 10/100/1000 [...]

Read Full Post »

In the last installment, I described the basic single sub-net home LAN with two runs of CAT5 (one going upstairs, and one going downstairs). In this installment, I describe our foray into the wireless world.
As our kids became older, it became more and more important for us to have a centrally-located computer downstairs. So, we [...]

Read Full Post »

The first part will cover the basic one-subnet, home network. The second covers the ABG wireless period including problems with the XBox. And, the last covers the current two-subnet ABGN+ wireless period.
DSL from Verizon is straight-forward for most people. The fastest available to us was the 3Mb-up-1.5Mb-down DSL (which establishes a line speed that is [...]

Read Full Post »

The two ‘Dragon’ compiler books are wonderful, and the labeling described here is but one of the several methods the Dragon books describe, but they leave Ershov numbers and labeling open to confusion. In the First Edition, the fictional target is a two-address machine whereas in the Second Edition, they change to a more RISC-like, [...]

Read Full Post »

Continuing from Part 1, we start describing hatori.y. Notice the tokens (NUMBER and ID) used by the updated scanner are defined here. Bison will produce hatori.tab.h from this. Also, sometimes we manipulate pointers to Node structures and sometimes we manipulate an index to either an ID or NUMBER, so the parser needs to know which [...]

Read Full Post »

The next stage (or two depending on how closely you look) is the parser. I say two because this parser will also have some minimal semantic actions that act as an interpreter for our language.
But, first, we need to change the scanner to pass its results to the parser instead of printing them out. In [...]

Read Full Post »

Lexical Analysis or Scanning looks at the stream of incoming characters and breaks them up into tokens. It can taken into account local context, but our initial language doesn’t need this ability. For the example input in the previous post below:

b = 200;
a = 1 + (-b/2)*30;
a;
b;

Our scanner produces the following:

[ID(b)][=][NUMBER(200)][;][ID(a)][=][NUMBER(1)][+][(][-][ID(b)][/][NUMBER(2)]
[)][*][NUMBER(30)][;][ID(a)][;][ID(b)][;]

This is accomplished with two [...]

Read Full Post »

The project name, Hatori, comes from the name of a Fruit Basket character. A spike is a term from the Agile Development methodology for a narrow, deep coding experiment used to improve estimates and remove design risk. Perhaps the distinction between a spike and a prototype is only cover for developers to say that they [...]

Read Full Post »

Compiler Notes

Here’s a list of books in my library on writing compilers and related things:

Compilers: Principles, Techniques, and Tools by Alfred V.;Ullman, Jeffrey D.;Sethi, Ravi Aho
Compilers: Principles, Techniques, and Tools (2nd Edition) by by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman
Advanced Compiler Design and Implementation by Steven Muchnick
Engineering a Compiler by [...]

Read Full Post »

Older Posts »