Comment

Comment by spc476

I did a Forth-like Unix shell in college (mid 90s) as a class project [1]. The differences I see from mine are:

1) I made Unix commands a first-class variable type. You could create a single Unix command and store it into a variable. You could also set up several commands as a pipe, and save that into a variable.

2) redirection and pipes are more Forth in style. Much like adding two values:

    2 3 +
To create a pipe, you create the two commands and then pipe them:

    cmd1 cmd2 |
I'm looking over the code, and I don't think I finished redirection to tell the truth, but I can see it being easy to add it like:

    cmd1 "filename" |
since variables are typed in my Forth-like language.

It was a fun project to write (it even included history!) but as a practical shell? Not so much. The syntax left much to be desired for an interactive shell.

[1] Unix systems programming. The class project was a Unix shell. I had, by that time, already written a Forth-like programming language on my own [2], which meant I could do the advanced shell (programmable) instead of the simple shell (command execution and redirection only).

[2] I was seriously interested in Forth at the time.

parent spc476 9 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton