Computer Languages
Putting together the C vs Pascal page got
me reminiscing a bit, and I thought I'd collect all the computer
languages I have learned. I am including anything I worked on/with as
a hobbiest, in school (college), or as part of a job. I am excluding
anything that I might have learned a bit about along the way, but
where I have not actually 'produced' something.
(SNOBOL,
PILOT,
Logo,
Objective C,
Go,
x86 assembly, etc.)
Also listed is where I first experienced the language. (The
68000 and C first at home, for example, but I had extensive work
experience with it—more than any of the other languages.)
Not all of these imply any sort of expertise, only that I did
produce something in each, however small or badly written. (Contrast
the
9900,
for which I wrote exactly one subroutine [for a school
assignment] with the
34010, for which I
wrote a complete low-level graphics library, defined a custom ABI for
higher-level C code, and for which I ported the
DIAB C
compiler. [The magnificent and highly-retargetable DIAB compiler
is still out there, now owned by Wind River, though they've almost
certainly never heard of that 34010 cross-compiler I did. Its author
did offer me a job once, stating that I was the only person in the
world who knew how the compiler worked who did not already work there,
but I didn't want to relocate to California—the only option at
the time.]
- Assembly
- 1802 (Home)
- 6502 (Home)
- 8085/Z-80 (School)
- 9900 (School)
- 8048 (Work)
- 8051 (Work)
- 680x0 (Home)
- 6809 (Home)
- 68HC11 (Home)
- 34010 (Work)
- FINGER (Work) This was a custom bitfield-moving
80-MIPS processor that I designed in Verilog for use
in Packet Engines' then-new Gigabit Ethernet
switch ASICs. There were six pipelined in a single channel's
data path, IIRC, and each had about 50 instructions in its
time budget in order to keep up at line rate. Software wanted
an ARM and a C compiler, which was entirely impractical,
ludicrous even, so we gave them the FINGER.
(There was a backronym, but I forget what we came up with,
besides 'N' for Network. Fast Ingres Network General
Execution Resource?) It was a key part of providing
low-latency
cut-through
switching and programmable
MPLS
and
Layer-3
switching in the product.
- PowerPC (Home)
- MIPS (Work)
- ARM (Work)
- FORTRAN (School)
- BASIC (Home)
- Pascal (School)
- FORTH (Home)
- C (Home)
- FoxBase (Work)
- sh et al. (Work)
- LISP (Work)
- AWK (Work)
- PERL (Work)
- Verilog/Vera (Work)
- PHP (Work)
- Python (Work)
- SQL (Work)
Return to Site Home