30th Anniversary of Pascal
GrokSoup writes "UC San Diego is holding a public symposium on Friday, October 22nd, honoring the 30th anniversary of the Pascal programming language. Oh the memories of undergraduate bubble-sorts ..."
← Back to Stories (view on slashdot.org)
Pascal was more than just undergrad bubble sorts. The original Mac had all the hooks and development stuff in Pascal. If memory serves the Mac was the largest Pascal project going. Using C (Lightspeed C, circa 1986 or so) was a real bitch on the machine.
Trolling is a art,
Loved Turbo Pascal, learned it in high school, was even remaking the first zelda on it, but was pixelizing everything, so it looked way better... sorry but that's pretty uber geek in my mind.. that was a long time ago.. this is also my first post, so i wish to formally introduce myself to the /. community!
President Bush Supporter
I've never used Pascal, I started programming in QB, went on to VB(5, then 6), then did C++, then Java, now Objective-C.
I think when I start teaching programming classes at my old high school I'm going to start with Python so you get one language that can do both objects and procedural programming... anyone recommend otherwise? I'm just a bit curious.
Kyle
http://www.unlogikal.net/
I too recall the heady days of Pascal in undergrad. Trying to explain to my lab partner how one could have an array of arrays... But that was a long time ago and I pose the question. What language is the "teaching language" now? Do they have Pascal?
"Europeans call me by name, Americans by value."
Sheesh, evil *and* a jerk. -- Jade
program Anniversary;
begin
writeln ('Happy 30th Anniversary Pascal. You roxxorzz');
end.
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
..helping to get the basics before starting to learn c. Quite nice language, although not the best, but ive seen even an operating system in freepascal ;)
It takes a man to suffer ignorance and smile
Be yourself no matter what they say
Hmmm and D&D just turned 30 too... coincidence?
Pretty widgets? What pretty widgets?
After spending a few years programming in C, I took a job programming in Pascal. I figured that it was just a matter of replacing {} with begin/end, and '=' with ':='. Boy was I wrong.
Sometimes you need a hack, and Pascal's purpose in life it to prevent those convient little hacks.
Am I the only one who felt _really_ really_ old when I read that. What have I done with the last 30 years of my life?
Who is General Failure, and why is he reading my hard disk?
I always did think that Pascal's notation for pointers and dereferencing was more intuitive than C and therefore less confusing for teaching algorthms and data structures. It also didn't let you write out of bounds of arrays. Good stuff.
I use Pascal all day, every day. I laugh myself sick thinking how much time my C++ developer friends waste on stuff that takes days in ATL/MFC/C++ that I can do in a few seconds in Delphi. DCOM servers, GUI programming, reusable components, these are all a pain in the butt with C++. Okay, C# and Dotnet are almost as powerful as Delphi, but they have a huge runtime (like java). For my money, nothing can touch Delphi/ObjectPascal/VCL for efficiency, productivity, quality, easy deployability with NO DLL HELL and no runtime installation issues.
WP.(Franciscan)
(P.S. I never ever shipped any app with the BDE in it. That, and the Database Desktop, are the crappiest things ever to come out of Borland. They are still in the latest native Win32 version of Delphi, Delphi 7, but at least you don't ever have to use them.)
Flippin' middle-agers and their line numbers, back in the days of fortran we had whitespace-sensitive code and we were grateful for what we had!
begin
Seems like a limited (and rather verbose) language now, but it was UCSD Pascal for the Apple II and shortly thereafter Turbo Pascal for DOS that made it possible to create sophisticated and transportable programs on personal computers without spending a fortune on development tools. Prior to that point it was either assembly-level hacking (which produced some amazing work, but didn't generalize well) or BASIC (no more need be said...)
end;
"All successful systems accumulate parasites" -- Hal Hixon
Way, way ahead of its time. It was an IDE and the code it generated was bytecode, not native code. I love hearing all the Java weenies talk like the Java VM is somehow a "new" concept when P-code was availble for a real language in the early eighties.
I wrote a "conquer the galaxy" game in UCSD Pascal when I was 19. Such fun, dealing with overlays to fit it in the 64k of my Apple ][+. I never sold it, alas, so dreams of become a rich game programmer never panned out.
It's funny...it also had the last IDE I actually liked.
Unfortunately for UCSD, they priced it too high, and Phillipe Kahn came in and stole the PC Pascal market. Of course, the grad students who actually designed and wrote the system never saw a penny.
The cake is a pie
"Honinbo Warrior" was written on my Apple II (serial number 71) using UCSD - a very civilized programming environment indeed.
The Apple II also had a fairly good interpreted Lisp (Pegasis Lisp) that I used a lot way back then. The Lisa editor/macro asembler was also great (as long as I am getting nostalgic, what about Bill Budge's great 3D library for the Apple II).
Some of those issues have been solved with advent of the Turbo/Object Pascal by Borland which is currently the most used Pascal dialect (for example the FreePascal uses it) which has taken many things from C. However, a still worthy read.
You can defy gravity... for a short time
It has been ages since I've done anything in pascal...but my programming language progression went from BASIC, QBASIC, then Pascal. I've moved to other languages from there but it was quite the eye-opener. Variables had to be declared, the "uses CRT" was quite the drastic change from what I had been used to (if I remember correctly), and the overall approach was enlightening.
Now there are other languages to learn with (and a few of those aren't just for educational purposes). Java, PHP, and C for example. Even Delphi has kept Pascal alive and relevant.
Back then, I had to find...um...creative ways to be able to program and compile Pascal code. With all the freely available IDEs, compilers, debuggers, etc. around now for all these various languages (especially through OSS), things have become more accessible.
Pascal was the language that brought me out of my BASIC habits...for that I'm definitely grateful.
All your productivity are now belong to CmdrTaco. Hope you like it here!
Cheers,
Gaurav
Pascal was great during the early 90s... It brings back memories of BBSes with 300-2400 bauders. Back then, this language was probably the most popular structured language. Many free and commercial BBS programs and doors were created using Pascal, using the free DDPLUS door kit for 7.0. So it wasn't just used for bubblesorts, it drove much of the BBS community!
Back in the 80s for me it was Turbo Pascal, originally a $39.95 wonder-package on a single 5-inch floppy. Compiled a whopping 7000 lines a minute on my 2Mhz 8080.
My never-ending project to simulate a D&D world led me to explore the mysteries of virtual method tables, linked lists, B-trees, and that other structure -- a mesh of nodes without a head -- what was it called?
My favorite TP achievement was a homegrown BBS that I ran for 2 years on my 1200-baud modem. I had no hard drive, just two 360K floppy drives. So the system and programs were on one and the msg files were on the other. There were 10 message boards. I gave some users sysop privs on individual boards. Three of them ran RPGs -- AD&D, Traveller and Robotech -- one woman ran hers as an adults-only hot tub/bar. Eventually I wrote an adventure game parser as a unit that would plug into the BBS. I only created one game for it, but many people played it through to the end and commented on it. Good memories of the pre-web era.
Wouldn't want to get shut down, would you?
- John
...until I tried the Pascal family of languages (Modula-2 actually). The strictness imposed by Pascal and its decendents really forces you to think carefully about what it is you're trying to code. Most of my early C programs worked by luck rather than design and would produce pages of warnings on compilation. After learning a bit of Modula-2, I became a much better C programmer (and programmer in general). Many years later I had to program in Turbo Pascal 7.0 (a predecessor of Delphi) and found it very pleasant (despite DOS and Windows). Pascal has come on a long way in 30 years and spawned Delphi, Modula-* and Oberon-*. They're well worth investigating.
Stick Men
It is a teaching language, so the main design goal is to force students to do it right, rather than hacking. Once they learn how to do that, they can the use a profressional language hacks. In other words, first you have to learn the rules, then you have to learn when to break the rules.
The cake is a pie
Some of us have never given up on Pascal. I still use Delphi and Kylix to this day. Meets my needs and Pascal makes a nice OO programming language, something that dates back to Turbo Pascal 7.
There is a ton of third party support for it and you can do just about everything a little easier then just about everything else. All my DSOs for Apache are done in Kylix...
D.O.U.O.S.V.A.V.V.M.
What was at first the so called BSD (Berkeley Software Distribution) by Bill Joy? Essentialy it was a Pascal Development System for UNIX bundled with UNIX itself. The improvements in UNIX were made by Joy in order to have an easy to use Pascal system. Don't believe? Look here.
Well Pascal was at that time really important.
You can defy gravity... for a short time
It's unfortunate that Pascal gave type safety such a bad name: the language, as it was usually used for teaching, had such limited functionality and imposed such a straight-jacket on people that several generations of programmers thought type-safety made languages useless and that they needed to use something as unsafe as C to get any work done.
Yet, commercial implementations of Pascal were in pretty common use, had all the low-level facilities of C, and yet gave programmers a decent amount of type safety and runtime error checking. In fact, a lot of the early Macintosh software was written in ObjectPascal, and TurboPascal was very popular and very useful on the PC. Even the Apple II ran a pretty good Pascal development environment (in 64k of memory), with a decent screen oriented editor, menu bars, and an integrated compile/edit/run/debug system. Pascal syntax also was quite a bit less error prone than C/C++'s. Having pointer dereferencing be a postfix operator alone is just so much more sensible.
Perhaps much more interesting than Pascal, historically, are Algol-60, Simula-67, and Algol-68, which are related to it; Pascal was probably never intended to compete with them, but rather serve as an educational introduction to them and their successors. Around the same time, many fundamental ideas in programming languages were developed and implemented, including APL, Lisp 1.5, Snobol, PL/I, Smalltalk, and Prolog. Window systems, GUI toolkits, constraint-based programming, MVC, and other concepts we take for granted today followed shortly thereafter.
One of the thing I like the most about Borland's Delphi is that its Object Pascal allows you to be procedure or object oriented. It also has the best IDEs around, and allows you to do anything you want (web services, device drivers, console apps, database apps, office tools, servers, clients, etc, etc, etc). Truely a Swiss army knife.
I'm going to go out tomorrow to buy some string.
:)
I'll cut off pieces, and at one end of each piece, write down how long that particular piece is.
Actually I (mildly) regret that I was an advocate for C and C++ in the university undergrad CS programmes, because at the time I personally enjoyed programming in C more than Pascal. Looking back I think Pascal was an excellent language for students, and I wish Niklaus Wirth's other languages, such as Module-2, Oberon caught on more. I think they were evoluting in the right direction of promoting good programming style, for programming in the large.
Rather than quick coding by the seat of your pants which C encourages or at least strongly tolerates.
we used both Pascal and C for our undergraduate courses. The editors (once in 43/50 line mode) were just as good as Microsoft Visual Studio (especially since they had the [alt]-[C] rectangular region copy/cut/paste option).
The problem with Pascal, was that it wasn't cross platform with other operating systems (Solaris, HP-UX, AIX, whatever...). And it didn't have access to the windowing/networking libraries that C programs had on UNIX (It wasn't until 1993 that Microsoft starting including TCP/IP with PC's).
Accessing any other libraries on the PC required 'C' bindings to be defined anyway, which of course required pointers to be handled).
Any Pascal programs for the PC were also hobbled by the 16-bit memory segment boundary limit, which
caused many problems for applications with large amounts of data.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
IMO: C surpassed Pascal because:
1) It's much easier to write a C compiler than a Pascal compiler, therefore the (early) availability of the C language on new platforms became a near certainty.
2) It didn't take project and product managers long to realize that in the era of Moore's Law, platform flexibility had great value. A project stuck on an obsolete platform due to the unavailability of its language on a revolutionary new platform was doomed, perhaps prematurely.
So its portability and ubiquity were C's most significant advantages over Pascal, back when there was a realistic contest.
3) For a time, executables written in C were likely to be considerably faster than those written in Pascal. This was a byproduct of the re-use of the C compiler code itself, versus fresh (read: immature) attempts at Pascal compilers. The C compiler cores got better with each processor port, but the freshly-written Pascal compilers often were not very good.
Today on the x86 platform with Borland's highly-refined 8th-generation compiler core, executables built from well-written Pascal are as fast as those built from coherently-written C, in my experience. It may be possible to write incredibly concise C that'll be a hair faster than the same thing written in Pascal, but arguing that difference is a fool's errand in the days of 4GHz rocket-ship machines executing septillions of NOPs waiting for something to do.
Personally, I choose Delphi these days over C, because I write and support huge projects. It is incredibly easy to pick up Pascal source and quickly figure out exactly what it does. That's the first (and most crucial) step in any software maintenance, and I find that Pascal's support cost savings more than over-balance any possible advantages I've ever realized from using C. When I'm writing something that needs to be extremely fast, I drop into inline assembly, but everything else I code in Delphi these days.
About the word "if": If bullfrogs had wings, they wouldn't bounce around on their little green butts.
It succeeded long enough for Borland to make Delphi 2005. I've always preferred Delphi to C++, because it has almost all of the features of C++ (the most notable lack being macros), plus it has much better enumeration and set handling (mainly, because it has enumeration and set handling).
There have been newtons per square meter for much longer than 30 years...
*ducks*
Love the Third Amendment?
Mac Pascal, Lightspeed C! I thought I was the only living person who climbed that learning curve. Problem was; it turned in to a learning cliff that I then fell off. I was good for nothing but assembler and BLISS for years until Pascal came along. This means we are due for a birthday party for the original MS-Basic pretty soon.
But didnt Pascal lead people to think of P-code which foreshadowed Java bytecode? a link off the article's link seems to agree with my memory...so i better not read it too carefully;)
and I certainly didn't use pascal just for academics. When I execavated the basement hole for my house, on an ostensibly unbuildable scrap of bedrock-studded land, a pascal contour mapping program that I wrote detected the one spot where the bedrock would be flat and need no blasting...back hoe guy was amazed an amateur could show him right where to dig.
SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
There's one thing I really miss about Pascal: nested procedures and functions. Being about to write a little utility function in the scope of the function it helps is just so elegant. You don't have to pass a bunch of parameters to get them in scope. Nobody else can miscall your utility function because it's not out in the global namespace. It's immediately clear to people reading your code that it's just a subordinate helper and to which function it belongs.
Function nesting is a feature sorely lacking from languages like C. It's not to hard to work around this limitation in an OO language, but the solution is still not as elegant or efficient.
And even after 15 years of C and C++, it still makes more sense to me to use = for comparison and to have a special symbol like := for assignment.
Today, we have Python, and whitespace-sensitive code is fucking BACK!
Fight hunger. Filet a politician and send him to a 3rd world country of your choice.
At MIT the required first computer course uses the 47-year old LISP language, at least the object-oriented, modular version called SCHEME. I guess this partially intertia, having done this since the 1970s. All electrical engineers and computer sci majors are required to take this course. That can be 40% of MIT undergrads in popular years.
It is a riot to read through all these posts on Pascal.
When I was knee high to a grasshopper I used Pascal to...
I remember once using pascal in high school to...
Man, Pascal is such a great language! Why I remember the last time I used it, it was just like yesterday...25 years ago...
Cut me some slack! Yes, it is a good language, I even have used it from time to time. But the adjectives pleasurable, cool, awesome, etc., are not what I would use to describe the experience. Perhaps okay, humdrum, yawn and eh? are some words I could use.
I know that people still use it but Borland/Inprise (yeah, remember the Inprise fiasco?) seem to do a real good job killing it. In fact, I would go so far as to suggest that Borland is Delphi's worse enemy.
I won't go down the list of things I hate about the language or Delphi, but if I were looking for a language to use for my next project, and I read the posts here, I would NOT choose a language that seems to have only fond memories going for it (btw, try doing a search for books about Delphi on Amazon).
If Delphi is so good and [ any language pascal users hate ] is so bad then how come Delphi is doing so miserably in the market? Ok, Ok! Yes, if you go to Brazil or the Ukraine EVERYONE and their grandmother is using it. But for as sucky as C/C++ (according to Pascalites) is it sure gets a whole LOT more air time then Pascal/Delphi. We could blame it on MSonopolies and cooperations, but that doesn't seem to go vary far either when you look at the open source community. And if cooperate America drove the use of language (not saying they don't have some say it it) then Java would be a rip roaring hit. Is it? NOT! It has a following but even it bills itself as a language that is much like C++. Even C# has a very C-ish look and feel (with a very Pascal-ish smell).
I remember once during a Delphi campaign Borland (or were they Inprise then?) tried to convince VB programmers that moving to Delphi would be easy and painless. If that doesn't give you chills then you are dead.
Sometime, if we all get together, I will show you my b&w photos of me using Pascal.
> this is also my first post, /. community!
> so i wish to formally introduce myself to the
Welcome to Slashdot.
Just be careful with the words "first post!"
I finally got my own Apple II in 1981, and promptly tried to write a program called "Dial a Dungeon" - a multi user modem text based dungeon. Alas, too big a project for me, and thus never finished.
Both Pascal and BASIC were intended for teaching only. Unfortunately both were pressed into areas they were not originally designed for and had to be retrofitted.
THere is a discussion above about production languages vs teaching languages being taught at this time. My opinion being better a production language, because when the Business Admin types take their intor to programmig class they will not be left with the impression that a teaching language is a real programming language.
THen force programmers to deal with what often amounts to crippleware when they are tasked with managing a software project.
putting the 'B' in LGBTQ+
If you want to build your first compiler, Pascal-style languages are a good place to start. They are amenable to recursive descent parsing.
I strongly recommend Jack Crenshaw's (free) introduction.
I seem to remember that the compiler is written in Pascal. I translated it to C as a I went along. You could always use GNU Pascal (That's a google link, because the site seems to be refusing connections. Could that be related to this FPP?)
Writing numerical code in octal - I just can't begin to imagine how much talent that took.
There is also Free Pascal that is Delphi compatible.... and Lazarus that use Free Pascal and is Delphi-like (Visual Pascal)... Write once, comile everywhere (Win32, *nix, Mac, BeOS, etc, etc, etc.).
That chart just appears to be the grammar for Pascal. You could produce a chart just like that for C++ using the C++ grammar.
Agreed, but for Pascal you won't run into any constructs that are recognized by the same chunk of "Railroad Normal Form" but which have radically different semantics--over and above the usual things you can't capture in a context-free grammar.
That is, Pascal doesn't have C++'s "if you can interpret it as a declaration, it's a declaration" rule.
From what I've read, C++ has the same difficulty as the original FORTRAN did; the original parser was ad hoc, so that it was a nightmare to parse with reasonable techniques, and arguably therefore harder for humans to deal with.
At my first job (in 1980) we did some programming with UCSD Pascal, although the majority of our work was in assembly (Z80 and friends). We dabbled around with UCSD Pascal on our CP/M machines and on a customer's Apple ][ and the performance was quite acceptable.
Then we got this strange beast -- I think it was a modified DEC PDP-11/03. IIRC, the 11/03's CPU was actually 3 chips: a core and what was essentially two microcode PALs. The microcode chips were replaced with ones that executed p-code (rather than PDP machine code). There was no interpreter -- raw execution of the p-code in hardware. It was so blazingly fast that we couldn't believe it. It was probably a 16-bit architecture too, so that may have helped (or was the PDP-11 one of those oddball 18-bit machines, 6 octal digits to a word...)
We never had a case for it, it just sat on the workbench on antistatic foam, with wires leading out to the floppy drives and the terminal. We did all of our Pascal development on that box, then moved it to the Apple (the customer's machine) for the "beta testing." It was mostly UI, so the performance didn't really matter.
Eventually, we switched to using C, since Pascal wasn't too practical for the embedded systems we were designing: we were mortified to see a compiled "hello world" was 8K bytes in size! That was four ROMs in those days... C had a much smaller footprint, so we began using it.
But I still wonder whatever happened to that machine...
Both apps are Free Software (GPL).
www.lazarus.org
www.freepascal.org
Lazarus := Delphi-like (almost a clon) IDE for Win32 AND Linux. It's API independent: can use transparently GTK+, Windows graphic system... etc.
FreePascal :=
Portable? no problem! It's available for different processors Intel x86, Motorola 680x0 (1.0.x only) and PowerPC (from 1.9.2).
The following operating systems are supported: Win32, Linux, FreeBSD, NetBSD, MacOSX/Darwin, MacOS classic, DOS, OS/2, BeOS, SunOS (Solaris), QNX and Classic Amiga.
The language syntax is semantically compatible with TP 7.0 as well as most versions of Delphi (classes, rtti, exceptions, ansistrings). Furthermore Free Pascal supports function overloading, operator overloading and other such features.
Try it! Or, at least visit the web sites.
Actually you are answering the wrong question. There was never any contest between C (the Unix language) and Pascal (a teaching language). The real tragedy was that the beautiful Algol succumbed to C so easily and so completely.
But you are quite right, compilers where the reason. C.A.R.Hoare (of quicksort and CSP fame) tells a good story where early in his career he led an Algol compiler team into disaster - after two years of careful programming they produced a multi-pass compiler and when they first tested it, it managed to correctly translate 1 line of Algol per second!
Ada is Pascals "child" so to speak. The sytax is pretty close. The more I use ada the more I like it although not without its quirks. Its not hard to pick up, and gcc will compile it.
Although calling Ada a success would be pushing it, it seems my companies large projects work best in ada, then c and c++ is always a disaster.
Ada lacks a lot of libraries that make java/ c so useful. But as someone pointed out (with a chuckle), you can bind Ada calls to C making it as powerful as C!
1) It's much easier to write a C compiler than a Pascal compiler, therefore the (early) availability of the C language on new platforms became a near certainty.
Not true. Pascal is generally easier to write a compiler for than C. Now you might be focusing on the optimization side of things, and in that case you'd be right. A naive compiler typically generates much better code for C-style pointer math than for arrays, and in Pascal you use the latter.
And in certain circles, Pascal is still the language of choice. Lots of people who hack out basic native-code Windows software prefer Borland's Delphi IDE to any alternative. One reason is the programming language, which is actually an object-oriented extension of Pascal.
I spent 3 years at Borland, documenting their component libraries, which are mostly written in Delphi. I came to appreciate its simplicity and power. My job required me to go back and forth between Delphi and C++ (the same libraries are used in Borland's C++ products) and it was an object lesson (forgive the pun) in how painfully baroque C++ has become.
It's a pity that Pascal/Delphi has so thoroughly lost the language wars. But it has. Even if C++ hadn't thoroughly taken over native-code programming, Borland's bizarre and insular corporate culture would keep from spreading beyond a few fierce loyalists.
Personally, I choose Delphi these days over C, because I write and support huge projects. It is incredibly easy to pick up Pascal source and quickly figure out exactly what it does.
One thing that helps Pascal readability over Java and C dirivatives is that declarations of types come *after* the variable name instead of before. The variable name is usually more important than the type name, so seeing it lined-up on the left side makes it easier to spot.
Table-ized A.I.
I am using Object pascal every day. (Delphi and Free Pascal). But there is still development done on Pascal compilers... take a looke at Chrome http://www.chromesville.com/ . That is a brand now .NET language based on Pacal that has some REALLY nice features...