Thursday, November 09, 2006

Status Report: Readings

Its almost mid November. We need to make sure we get all our readings done before the holiday starts. I'm suggesting we aim to have the Lisp book finsihed by the end of November and have most of the Compilers text read one time through before the holidays start. That sounds ambitious now, but I think it'll pay off once we're in class.

I've gotta stop playing StarCraft.

Sunday, November 05, 2006

Next step: Lexical Analyzer

We have couple of options at this stage.

1). We can go off and keep reading the compiler text book and a Lisp text book.

2). We can start implementing a A1 which is a lexical anylzer and a parser.
This is under question since we don't know whcih language to use; Cormack decided to ignore our plea about Python.

3). This is my favourite option. There is a need to SQL-92 parser to verify if SQL code complies with SQL-92 standard. There are, of course commercial products, but nothing on the web where you can just post your sql to the form and it will check the code for SQL-92 compliance. The beauty of this project is that exactly fits in with our learning requirements for A1. We only need to implement a lexical analyzer and a parser. Grammar for SQL-92 already exists.

We might be able to reuse lexical analyzer and parser for other grammars, basically A1. I am not even talking about benefits like small ad revenue, industry exposure, and a better looking resume.

What are your thoughts?

Friday, November 03, 2006

Steel Bank Common Lisp

Hello Fellowship of The Compiler,

After a many-hour-long struggle with lord DiskQuota in the evil lands of CSCF. I finally succeded installing SB Common Lisp. Victory came as a surprise when DiskQuota decided to reform his armies and rebuild his indices. Losing his sight of how much of enemy territory I occupied proved to be a fatal mistake and the install succeded.

We now have officially installed order in dark lands previously occupied by DiskQuota.

The governor of those lands will be my much capabale student Steel Bank. His new palace is accessible by windy and dangerous paths. You better know your path before setting out to congratulate him on his new position.

setenv PATH "${PATH}:/u4/dgnidash/lisp/bin"
setenv SBCL_HOME "/u4/dgnidash/lisp/lib/sbcl"

Many dangers await you if you use the wrong shell.

Once you are in the palace, call out "sbcl" to reach Steel Bank.

The shadows are still whispering in the dark corners of the world. Evil is not dead. We might suffer a set back to our early and fragile victory from Evil Permissions.

Thursday, November 02, 2006

AKCL, CLISP, and the Undergrad Environment

I played around very briefly with AKCL. It appears to work for the very basics. I created a function and called it. Yay. But when I tried to quit, (exit) failed. exit was an undefined function. quit also was not recognized. Ctrl+C was eaten up by the top level interpreter and didn't kill the app. I had to terminate the process from another terminal.

In trying to google a way to quit the program, I discovered that AKCL has been turned into GNU CL and AKCL's last version was created over a decade ago. GNU CL was last updated last year, but its not on the school system.

CLISP is not GNU CL. CLISP, however, is a GNU project. We seem to have a name collision here. Anyway, CLISP is found at http://clisp.cons.org

Further snooping around the CLISP website, I've discovered that CLISP does not pass its makefile tests on the Sparc processor. There's no unix/sparc implementation available for download. This could be why the MFCF isn't giving us any help. MIT Scheme might be our best option.

Lisp

Hey guys,
I did 10 second research on CS environment.
Here is what we have installed:
1). MIT Scheme ( which is a pretty good fail back plan )
There is an excellent book ( So I have heard ) Structure of Computer Programs from a course in MIT online.
Cmd: scheme
2). Austin Kyoto Common Lisp
Don't know much about it. Doesn't seem to be well supported. can someone look into it?
Cmd: akcl

So, that's pretty much our choices...or install it on our personal accounts. Can you guys confirm how big an install of clisp is?
When we say CLISP are we talking GNU Common Lisp?

Cheers

Monday, October 30, 2006

SVN Server

We can use the SVN server I have running on TO mapster. The only thing I will have to do is setup permissions. I think we can cross that off our list.

We might need a backup scheme which I can set up by using our UW accounts/Gmail.
We can have a service running on UW machines that downloads the code, packages, and sends it over to Gmail account. I already have something like that.

Friday, October 20, 2006

Cormackster

Hello Gents,

We have some serious decisions to make gents:

Hello Gordan Cormack,

I am Robert Luong a student who will be taking CS444 next term. I was hoping you could answer a few questions our group has for our compiler:

1. We were wondering if we could write our compiler in Lisp? And if
so, do you know if the math environment provides us with any tools?


You may use Lisp provided that we can run your compiler on the undergrad environment. I'm not sure what's available. I know that MIT Scheme, and some other Schemes are available.

2. If the language that we wanted to select could be Python as opposed to Ada?


I suspect I will not allow Python as a source language.

3. Our team is writing a blog (not like Aardvark'd but just something to document our progress). We wanted to know what would acceptable and unacceptable content to be placed that would interfere with UW's cheating policies.


Not sure exactly what content you were thinking of. In general
I encourage sharing of ideas on the newsgroup, and test data.
And after the deadline what's yours is yours. I would not like
you to make your coded solutions to assignments available to
others in the course before the due date.

Did you have something specific in mind?

Thursday, October 19, 2006

OCaml

Everythin I read about OCaml points to it being a great language.

http://www.cs.ubc.ca/~murphyk/Software/Ocaml/why_ocaml.html
http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg00310.html

It is insanely fast. Shy of C, but fater than C++. Has tons of other cool features.
I highly suggest looking into OCaml. One drawback is its library support is weaker than Lisp's.

Now, I am excited I want to do some kind of a project in OCaml :D
Maybe code some kind of a graph algorithm or something. I hope it plays nicely with other languages especially python.

Wednesday, October 18, 2006

Nice programming language

I got all excited about Nice lamguage because somebody mentioned that it has inference typing. After doing some research on the language, it seems that the language is quite a bit of improvement of Java with some really nice features, but it doesn't have inference typeing:(

So, then I learned about this other language, "Clean", that is also compiled and is said to have inference typing I am investigating that at the moment. Unfortunately, it is a purely functional language so somethings might be sufficiently different.

I am learning bits and pieces of these obscure languages though so it is good:)

Tuesday, October 17, 2006

T and A

I just sent an e-Mail to a TA of the current term to see what he can answer:

Greetings Tyrel Russell,

I am not a current CS444 student but I will be in the next term. I was hoping you could answer a few questions relating to this course. Our group wants to do a compiler written in LISP for Python. I was wondering three things. First, is there any better source control than CVS for our environment? Second, CLISP doesn't seem to be in the cs environment I was wondering if we had any other alternatives. Lastly, I was wondering if Python was a viable alternative to Ada.

Thank you for your time,


Robert Luong


His response:

I am afraid that I can only answer your questions partially. First, I prefer to use CVS because it is well understood by everybody and supported by the school. Questions about lisp interpreters on the student servers are out of my area, I don’t use the student servers so I don’t know what is on them. Asking the MFCF help desk people about lisp might clear up that question. It would be perfectly fine to write a compiler in lisp if you think that you would be more comfortable using lisp. As to whether you can implement python is up to the instructor which to my knowledge is still undecided.

Sorry I can’t be any more specific,

Tyrel

Friday, October 13, 2006

Todo (redux)

Hmmm let's see:
  • Decide where we'll be doing a majority of our coding in term of location
  • Decide where we'll be doing a majority of our coding in terms of programming environment (not sure we'll be SSH-ing, do we have clisp or something at school?)
  • Source control if we're not doing it at school; if so, get SVN set up before we get there
  • Finalize the darned group, see if we'll be able to get a Google member before it ends
  • Bug tracking? :P (I'm thinking of a small business project)
  • Condoms for all those females that we'll be so obviously having relations with
That's all I can think of right now.

Todo

List of things to do regarding this blog and/or the compilers course itself
  • Ensure Lisp is completely understood before the course begins
  • Ensure that the Compilers textbook has (mostly) been read and understood before the course begins
  • Have a rough idea of the tools required to make the compiler and what, if not all, will be written in Lisp
  • Decide whether the compiler itself will be written in Lisp
  • Talk to Prof Cormack about what is appropriate and inappropriate content for this blog (re UW's cheating policies)
Anything else, Rob?

Thursday, October 12, 2006

Opening Winter 2007

A blog about two (or three) students' trials and tribulations as they are destroyed slowly by their 4th year compilers course at the University of Waterloo.