> So. I go to high school and people still think it's a good idea to teach people Pascal even though there's stuff like python, or, anything.
Pascal is one of the best languages to learn structured programming, FWIW.
Also, try http://freepascal.org/ -- there might be a portable version.
EDIT: Someone else already mentioned Lazarus, which can be installed on a USB drive according to the docs at http://wiki.freepascal.org/Installing_Lazarus#Installing_Lazarus_under_Windows.
Not a engine per-se, but a common library/framework. All of the roguelikes are written using FPC Valkyrie ( http://sourceforge.net/projects/fpcvalkyrie/ ) in FreePascal ( http://freepascal.org ). DiabloRL is actually GPL'ed already - http://sourceforge.net/projects/diablorl/ . DoomRL and AliensRL will follow at some unspecified point in time.
>I'm really looking forward to D, Rust, et. al, because I'd really love to have a "C with classes" language that doesn't have all the baggage and problems that often crop up in C++.
I was using hierarchical notebook for a while, but i found it a bit cumbersome to use. Unfortunately the program hasn't been updated for about 7 years now (8 if you only count years :-P). There is an updated version floating around but to me it looks the same thing (probably just bug fixes).
So i decided to try and make a custom one which, for some reason, i named Outliner Lighto. This is what i came up after a morning's work :-). It is written in FreePascal and uses its "video" and "keyboard" units which should provide cross-platform support (it seems to work under Windows and of course Linux - i developed the whole thing in a Linux terminal outside of X - but i havent' tested it under other OSes like some *BSD or Mac OS X).
I tried to make it user friendly, at least as far as console apps go. All commands are single keystrokes (like D for delete, I for insert, A for append, G for grab, D for delete - ok that one needs confirmation - C and Enter for edit/change, etc) and it uses both "function" keys (arrows, home, end, etc) and Vi-like keys (so you don't need to move in the far lands of your keyboard while writing).
Compared to hnb it still lacks a couple of features (like search, which i'll add soon), but the most common stuff is there. Also it has some of its own features, especially on the presentation part (different colors for node depths, highlighting for non-tickable nodes under tickable parents for use as headers, etc). The absolutely next thing i want to do is make a small program to convert my hnb outline to the program's format.
So, what is your opinion about this and do you have any suggestions? :-)
> LLVM IR or JVM bytecode for example.
LLVM IR also has undefined behavior inherited from C that can affect the program. For example one of the Free Pascal compiler developers was working on adding an LLVM backend for FPC and found out that LLVM considers reading from a null variable as underfined and removed code that relied on that. Free Pascal however considers this a valid thing to do (it relies on the system to handle it).
Free Pascal provides a free compiler for Object Pascal that targets a ton of systems and architectures. It is probably only second to GCC in terms of supported targets.
So if you want to use an advanced and modern Pascal today you can do it with Free Pascal. Just a few hours ago, Michalis Kamburelis posted in the Lazarus mailing list a nice tutorial he wrote for modern Object Pascal for people who already know how to program but want to learn it :-)
Pascal is not longer relevant as it was many years ago, but it's a great teaching language, far more suitable for introduction to actual programming (may be not so to CS in general) than C or C# (which is a worse choice of all languages mentioned).
Have a look at Free Pascal It is also a cross-compiled language with great support for a whole bunch of architectures, Linux, Windows and Mac included. The compiler is Free (GPL'd) and Lazarus it's a wonderful IDE capable of producing cross-platform GUI application easily.
Edit: Didn't notice it's happening in college. Pascal is practical as a teaching language, but it shouldn't be the only one!
> C exists everywhere, partially because a working compiler is relatively easy to implement (well, easy as far as compilers go; definitely much easier than C++).
Free Pascal supports a crapton of targets. Making an object pascal compiler is much harder thing than C though (a standard Pascal compiler is much easier, but nobody uses standard Pascal nowadays). Probably around the same complexity as C++.
> Most other languages can speak to C
"Speaking" with Free Pascal code is done the same way as with C++ - you declare something to have C linkage and it is available through DLLs/shared objects.
If you're using FPC, you could possibly read the whole line at once to a string and then use the strutils.ExtractDelimited function to extract the parts.