On Sat, 1/7/17, Kai Baker <
eigen...@gmail.com> wrote:
> Subject: Programming language & compiler implementation and design club
> To: "collexion" <
coll...@googlegroups.com>
> Date: Saturday, January 7, 2017, 1:11 PM
>
> Hey folks!
>
> Programming languages and compilers have been a passion of
> mine since I was 14. I love designing programming languages
> and I'm currently designing my own lexical analyzer for
> a clang front end. I'm curious if anyone here would be
> interested in either a biweekly or once a month meeting to
> discuss programming language & compiler design and
> implementation?
Sounds interesting. I spent 10 years as a developer of a follow-on to
the IBM PL/S compiler:
https://en.wikipedia.org/wiki/IBM_PL/S
The derivatives I worked on were PL/AS and PL/X. Unfortunately, that
was over 20 years ago when I got out of that task, and, even more unfortunately,
most of the details are still classified, and I can't divulge them. I can speak in
generalities (which is about all I remember anyway).
> The topics of interest to me tend to be very
> fringe and non-conventional. I love functional programming
> languages and metaprogramming. I'm also interested in
> systems programming and assembly level programming. Compiler
> optimization and reverse engineering are other topics I
> would love to discuss.
My specialty in the compiler was the dictionary phase, although I
seem to have picked up responsibility for the scan phase, as well
as the formatter phase. I could sometimes hold my own in the semantics
phase, although I was lost in the weeds in the optimizer phase. I even
dabbled in the code generation and data generation phases.
I also have an interest in other types of programming, although I simply haven't
had the time to do much with them. I've had the idea of a graphical programming
language floating around in my head for about 30 years now, but no time to work on
it (Yeah, sort of similar to logo, but entirely different.).
Ah, yes, systems programming. That's where PL/S really shined. It was designed
for writing operating systems in. One of the features was the ability to drop into
inline assembler code. It also supported features such as multiple address spaces,
and other low-level concepts.
Compiler optimization is a very useful field, although it tends to be somewhat specific
to the processor that the compiler is going to generate code for. Some of it can be
genericized, such as pulling common expressions out of statements, and optimizing
those to registers, or temporary variables, but other aspects, such as peephole
optimization and code reordering, tend to be VERY processor specific.
Reverse engineering can also be interesting. I've worked with a couple of
dis-assemblers, although most tend to produce VERY clunky code. There have
been theories of reverse-compilers, but most of those get bogged down in the
optimization.
If you really want to go to the bleeding edge, consider a (theoretical) microprogrammable
machine, with a customizable instruction set, which a compiler could generate the
microprogramming instructions for, and then use these customized instructions in
the program it generates. No, it would not be trivial. And, it would be the ultimate
of the bleeding edge, at least for now. But, given the new soft-processors that can
be built from FPGA chips, one could design custom processors which could then
be either re-microprogrammed, or dynamically reconfigured on the fly. I don't know
of anyone who has done that, yet, but it certainly ought to be an area of research.
https://en.wikipedia.org/wiki/Soft_microprocessor
> I like redesigning the wheel from scratch in
> order to improve my understanding of the concepts. So that
> means I don't use tools like bison, antlr or flex. An
> ultimate goal of mine is to re-invent some of the clang
> optimization and JIT programming magic, if only for academic purposes.
The compiler I worked on was written in its own language. How's that for
a catch-22 situation? It made for a good way of testing modifications to it.
> Anyone who is interested in these ideas and goals
> let me know and I'll organize something. I would like to
> use the UK campus for these meet ups.
Oh, I'd like to, but that part about the UK campus might be a deal breaker.
I don't do well in high traffic situations, due to a visual impairment, so I try
to stay away from UK. I also don't drive at night.
Dave