Pascal (Not Just Nickel & Dime) - Computerphile

  Рет қаралды 57,947

Computerphile

Computerphile

3 жыл бұрын

Pascal evolved from Algol 60. Professor Brailsford discusses the rift in the Algol committee that led to its creation.
Brian Kernighan's Bell Labs Memo: www.eprg.org/computerphile/pas...
EXTRA BITS: • EXTRA BITS: Pascal - C...
/ computerphile
/ computer_phile
This video was filmed and edited by Sean Riley.
Computer Science at the University of Nottingham: bit.ly/nottscomputer
Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharan.com

Пікірлер: 205
@gloverelaxis
@gloverelaxis 3 жыл бұрын
That Wirth joke was so phenomenally specific and clever
@jej3451
@jej3451 3 жыл бұрын
which is why it has to be fake
@rs-tarxvfz
@rs-tarxvfz 3 жыл бұрын
Hey computerphile admins, I wonder why you guys have not made anything about Containers? Can you please make video on etymology of Containers and INTERNALs of Container?
@ericvilas
@ericvilas 3 жыл бұрын
Pascal: "You can't have pointers to pointers, that's dangerous" C: ...... :)
@Pekkhum
@Pekkhum 3 жыл бұрын
char *****************data = NULL;
@nuk1964
@nuk1964 3 жыл бұрын
Of course one could also play around with variant records to get around the language restrictions (in particular you declare the record type without a tag field to make it into a free type union). You also need to make sure you specify "packed" (and hope that the compiler will honor this) -- otherwise in some environments you'll not get what you'd expect (and in a few cases I remember situations where the compiler didn't honor this). Aside from potential of crashing your computer (in a non-protected environment like DOS, clobbering contents of memory could easily crash the system), and the risk that your code becomes non-portable (as you could be "baking in" assumptions about the environment).
@dandan7884
@dandan7884 3 жыл бұрын
hold my asterisk
@nusretsuzme8303
@nusretsuzme8303 3 жыл бұрын
type pByte = ^Byte; ppByte = ^ pByte; pppByte = ^ ppByte; (* and so on *)
@sameersarwar2504
@sameersarwar2504 3 жыл бұрын
how else would you make multi-dimensional arrays
@ColinTimmins
@ColinTimmins 3 жыл бұрын
I remember using Pascal in school. I showed my friend who was much younger then I was what you could do with it. He started to program, making his own game of course. He very quickly surpassed my ability to program and now programs for a living.
@000zeRoeXisTenZ000
@000zeRoeXisTenZ000 3 жыл бұрын
I never met any of my grandparents. All died before i was old enough to memorize them. But with this vids i get somehow a feeling to have a grandfather, telling you long stories. Thank you!! :)
@spoonikle
@spoonikle 3 жыл бұрын
This mans lectures sooth my soul
@Decco6306
@Decco6306 3 жыл бұрын
Turns out there's a modern and up to date version of Pascal called ObjectPascal. Yep its exactly what it sounds like. Pascal that can be object oriented. There is as well an open source compiler called FreePascal and an optional IDE to go with it called Lazarus. Its actively developed for and is available for tons of architectures including the gameboy advance(for some reason). Its actually quite nice and i recommend people to take a look. It is a very capable language and i wish more people used it tbh. Its super easy to read and pick up especially if you have a background in Python.
@samuelworsnop9983
@samuelworsnop9983 3 жыл бұрын
I read Professor Brailsford's paper on the readability of the Lucida font type at small sizes when exposed to noisy photocopying and fax machines. I find it fascinating how the font made such a big difference for printing back when printing resolution was scarce, something we often take for granted these days with comparatively high-quality printers being readily available these days. The professor is truly a legend :-)
@spinzed
@spinzed 3 жыл бұрын
0:50 Ah yes, my favorite member of the ALGOL 60 committee: Mr Angle Brackets
@lawrencedoliveiro9104
@lawrencedoliveiro9104 3 жыл бұрын
6:19 I remember a description from the time that “pointers are the gotos of data structures”. And guess what: Pascal had gotos as well. Not even restricted gotos: they were a full implementation, including being able to jump *out* of an inner procedure/function call into an outer one. This was, of course, a way of doing exceptions before languages had the concept of “exceptions”.
@lawrencedoliveiro9104
@lawrencedoliveiro9104 3 жыл бұрын
You didn’t mention Ada, which was an offshoot of Pascal created as the result of a competition held by the US Department of Defense, to create a language suitable for doing systems programming for safety-critical and mission-critical systems. There is still Ada code in use today, for example controlling the life-support systems on the International Space Station (running on Intel 386 processors, with no Microsoft code anywhere in sight).
@Placeholderhandle1
@Placeholderhandle1 6 ай бұрын
Yes, in this 11-minute video, he didn't mention every descendant and implementation of PASCAL and its children.
@igo5543
@igo5543 3 жыл бұрын
These videos are both entertaining and informative. Thank you, professor, I'm looking forward for your next talk!
@PeterJohnsonWales
@PeterJohnsonWales 2 жыл бұрын
Ah Pascal. Still my favourite language - well the modern object Pascal(s) anyhow. Been using it since the UCSD Pascal the Prof mentioned, via a Sinclair QL version to the latest Delphi version. Definitely of the begin .. end persuasion rather than in the {} camp!
@ralfoide
@ralfoide 3 жыл бұрын
The professor is right, and tells a formidable story. I learned Basic on micros, then UCSD Pascal. Pascal was a perfect learning tool before moving on to C. Turbo Pascal and Turbo C in the 80s were incredible tools and influenced a whole generation.
@zippy-zappa-zeppo-zorba-etc
@zippy-zappa-zeppo-zorba-etc Жыл бұрын
I bought turbo pascal 5.5 (the first one with objects), then upgraded to 7.0 and turbo c++ 5.0. Loved those compilers and it broke my heart when Borland went under shortly after.
@trespire
@trespire 3 жыл бұрын
We had turbo Pascal at collage computer lab. We even wrote a program in it to control a PLC in our final project build.
@jonathanguthrie9368
@jonathanguthrie9368 3 жыл бұрын
I've heard Turbo Pascal described as "that random Pascal-like language invented by Borland" Which isn't a problem if it does what you need to do. I've run into limitations of various random C-like languages and sometimes it's a problem and sometimes not.
@treyquattro
@treyquattro 3 жыл бұрын
@@jonathanguthrie9368 Turbo Pascal was great: interpreted, edit-and-continue, P-Code. It was fast. Remember this is around the time when if you were programming PCs your default was BASIC. ETA: And let's not forget: the architect of Turbo Pascal was one Anders Hejlsberg who was later the lead architect on C#.
@f15sim
@f15sim 3 жыл бұрын
@@treyquattro Turbo Pascal never generated p-code. From v1 onward, it generated native machine code. Z-80 for the CP/M versions, x86 for the 8086+ versions.
@The4Crawler
@The4Crawler 6 ай бұрын
I loved Turbo Pascal, used it a lot back in the late '80s when I was doing various graphics board display drivers for DOS PCs. TP was great at writing terminate and stay resident (TSR) programs. I had a collection of those that could hook into the INT10 and INT33 BIOS calls. With these, I could intercept all the video, keyboard and mouse data and then display, record and pass through that data. We had a high res monochrome display and I wrote a video BIOS for it that card. I used it to display around 160x80 characters in DOS. That came in handy one day when my boss came in and they urgently needed a "scrolling H's" program for FCC EMI testing. I guess the "HHHHH" characters would generate the highest frequency video signal with the CRT monitor. I wrote a quick batch file that echoed a string of "H" characters to the console (my high res BIOS program) and gave it to my boss on a floppy disk in a few minutes. These TSR programs also worked great for making demos of the desktop publishing software (Ventura Publisher) our graphics boards were used with. I could load my TSRs into memory with a flag set to record their data to disk. Then I would start the program up, run through some features like loading a document, panning, zooming, editing, etc. then close the program. Later, I could take that captured keyboard and mouse data and pump that back into my TSR programs and the PC would run through the exact series of keyboard and mouse operations that I had recorded. Made great demonstration tools for the sales people who didn't know how to run the programs in detail. I also re-wrote the setup/install program for our cards. Originally, that required users to manually copy files off a floppy onto their hard drive. I wrote a full text based GUI in Turbo Pascal using a 3rd party menu package. It used a config file that could be used to change the manufacturer and product names for our OEMs to use to customize the install floppy for their product. If anyone install GEM or Ventura Publisher drivers based on Paradise or Western Digital video chipsets back in the late '80s / early '90s, you probably used my program. I ran into it when I bought a new video card some years after I left that company. Shortly after that, everything went to Windows and that was the end of the DOS based graphics card drivers.
@PopeLando
@PopeLando 3 жыл бұрын
Pascal was my first love. And the first compiler we used said "E.T.H. Zurich". If I had only known that it might well have been largely coded by Niklaus Wirth himself! It was on a CDC Cyber 170-720.
@nomio827
@nomio827 3 жыл бұрын
1:18 ETH stands for Eidgenössische Technische Hochschule, but close enough.
@profdaveb6384
@profdaveb6384 3 жыл бұрын
Thank you! I suppose I could go and look it up but what does "Eidgenössische" mean?
@boyiscola
@boyiscola 3 жыл бұрын
Swiss federal
@HobbyWelt
@HobbyWelt 3 жыл бұрын
ProfDaveB ETH = federal institue of technology
@galier2
@galier2 3 жыл бұрын
@@profdaveb6384 literal translation of "Eidgenosse" is "oath compagnon".
@pierreabbat6157
@pierreabbat6157 3 жыл бұрын
I translate it "confederal", since Switzerland is called a confederation, not a federation.
@SkinnyCow.
@SkinnyCow. 3 жыл бұрын
David & Mike, my 2 favourite Computerphile guests.
@MrBlaDiBla68
@MrBlaDiBla68 2 ай бұрын
I'm already a 50+ computer scientist, and I hope to grow older like this guy... Great job, I remember this period well.
@persimonsen7504
@persimonsen7504 3 жыл бұрын
A side track perhaps, but would love to see a pice on Simula by Dahl/Nygaard and its inpact on programming with their Object Orientation. It was, after all, based on Algol60
@caw25sha
@caw25sha 3 жыл бұрын
Someone tried a sort of pseudo OOP in Fortran in the late 50s but of course Simula was the first real OOP language IIRC. I don't think OOP really hit the big time until C++, which of course gave birth to Java, C# etc.
@profdaveb6384
@profdaveb6384 3 жыл бұрын
Agreed!! I admire Simula a lot but having never taught it and knowing very little about Dahl an dNygaard it’s a job I'll have to leave to someone else ....
@henrikjensen3278
@henrikjensen3278 3 жыл бұрын
I learned programming with Pascal (and assembler and a few other languages), it was fairly fast upgraded to Turbo Pascal, Borland Pascal and Delphi that removed most of the limitations. It is not that I had that many issues with the limitations, they where first a problem when you wanted to get close to the hardware. I still remember "Colossal Cave Adventure" on the mainframe, it was a big Pascal program with some really nice programming like: "if bird in cage then..." (that is completely standard Pascal). I have missed the sets from Pascal in other languages, it was a very nice concept and part of the language (It is, of course, simulated with classes in other languages).
@JonWhitton
@JonWhitton 3 жыл бұрын
Thank you for sharing this history. A small part of how we got to the place we are at today
@elmo2you
@elmo2you 3 жыл бұрын
Damn! I worked for many years with (Turbo) Pascal (and later Delphi), but I never new it was related to Algol. Fascinating
@caw25sha
@caw25sha 3 жыл бұрын
Most programming languages in use these days including C are descended from or influenced by Algol, at least the imperative parts.
@elmo2you
@elmo2you 3 жыл бұрын
@@caw25sha I know that (and a few things more), but I never knew that Pascal was specifically what started out as the successor to Algol 60. Maybe in part because I stopped using Pascal long before I developed a fascination for computer science history (in general). Also, it was actually this video that made me remember I have used Pascal in the first place, for at least more than half a decade. I somehow managed to completely forget about it, but I have no idea why.
@a21stcenturyboy.60
@a21stcenturyboy.60 3 жыл бұрын
THIS SUMMER I FOUND AN OLD BOOK ABOUT ALGORITHMS AND I SAID WELL LET S GIVE IT A SHOT IT WAS A VERY OLD BOOK FROM EARLY 90s AND IT WAS ABOUT PASCAL SO NOW I AM TOTALLY IN LOVE WITH THE LANGUAGE AND IT IS MY FIRST. MY friends make fun of me because I use an old language but I laugh when I could easily debug my code and build more efficient algorithms than them XD. Now I started learning Delphi and I am doing good. Peace.
@hoagy_ytfc
@hoagy_ytfc 3 жыл бұрын
I loved Algol-68, used it heavily during my first degree.
@ncot_tech
@ncot_tech 3 жыл бұрын
I built a Z80 machine earlier this year and after getting bored of MS Basic I installed CP/M and Turbo Pascal. It was like going back to my A Levels and using Turbo Pascal 6 for DOS 🙂
@johngeverett
@johngeverett 3 жыл бұрын
I ran CP/M on my first pc - an Apple ][+ with a Z-80 coprocessor. Loved it! Who needs more than 48k when you have CP/M and a macro assembler?
@gaskelldave
@gaskelldave 8 ай бұрын
We used Think’s Pascal on Apple Macs in the mid ‘90s for A-level computing. I remember reading somewhere that much of the early Mac OS had been written in Pascal or at least the QuickDraw part of it. The prof. mentions that you couldn’t do bitwise operations but I’m sure we did to check for events such as mouse downs or menu selection, can’t remember how though. Until watching this I’ve never heard any mention of Pascal since those 6th form days, 30 years ago!
@galier2
@galier2 3 жыл бұрын
Turbo Pascal broke out of the restrictions simply by implementing all the C stuff that was missing. The issue with it was that then it was not Pascal anymore.
@AsmodeusMictian
@AsmodeusMictian 2 жыл бұрын
Turbo Pascal for the Apple II was the first thing that I learned to code on in High School.....what a nightmare for me to learn lol. It drove me nuts that it would run until it 'fell over' and STOPPED...then threw an error at that line basically saying "Hey, somewhere above this line there's a mistake. Enjoy!" UGH. Now I'm trying to learn Godot decades later :D
@lohphat
@lohphat 3 жыл бұрын
I started learning Pascal on a TRS-80 in the early 80s before C took off. They share a very similar syntax and structure. Lisa Pascal and 68000 assembly were the initial preferred languages for the Macintosh.
@silaspoulson9935
@silaspoulson9935 3 жыл бұрын
interesting! Do you know why they changed? Perhaps popularity?
@lohphat
@lohphat 3 жыл бұрын
@@silaspoulson9935 The momentum of Unix and its variants.
@pmcgee003
@pmcgee003 3 жыл бұрын
Turkey licenced 1 million seats for modern Pascal in 2019 or 2020. It's an excellent language - very readable. It's a bit of a pity this only mentions the 1970s.
@dustysparks
@dustysparks 3 жыл бұрын
I was using it in the late 90's, but not for professional work
@nusretsuzme8303
@nusretsuzme8303 3 жыл бұрын
@@dustysparks you need to be very professional if you want to use pascal for professional work :)
@petros_adamopoulos
@petros_adamopoulos 3 жыл бұрын
@@nusretsuzme8303 In the public sector, i.e life long contract with the government. Then sure.
@nusretsuzme8303
@nusretsuzme8303 3 жыл бұрын
@@petros_adamopoulos It was amazing back in the day but it is still a powerful tool.
@Bigman74066
@Bigman74066 3 жыл бұрын
Love (Object) Pascal. Such a shame it seems to be disappearing.
@zilog1
@zilog1 Жыл бұрын
I was looking into the FreePascal compiler and i kinda like it. I might actually unironically use it in something
@junaid-vc3js
@junaid-vc3js Жыл бұрын
oh wow, not being interested in computing when I was in college, I only took up computing at University. My first programming language was Pascal using turbo Pascal. This was very informative!
@Magician169
@Magician169 3 жыл бұрын
Thank you for this!
@barrynance2871
@barrynance2871 3 жыл бұрын
You might consider discussing Modula-2, Prolog and perhaps even IBM/Microsoft BASIC compilers, along with their runtime environments, in future episodes.
@WX4CB
@WX4CB 3 жыл бұрын
that was the 2nd language I learned.... when on from turbo pascal all the way into windows 3.1 versions to create windows programs. then on to delphi and the ilk. still do use it occasionally for simple stuff in linux.
@MidnightSt
@MidnightSt 3 жыл бұрын
"once you run out of steam with it, there are no workarounds, none, you have to move on to something else" ...which is the last valuable programming lesson that Pascal will gift you - the lesson about limitations of tools and how to handle them.
@lawrencedoliveiro9104
@lawrencedoliveiro9104 3 жыл бұрын
7:41 UCSD Pascal was very influential. Most of the PC-based implementations were clearly inspired by it (e.g. variable-length strings, “univ” pointers).
@TheSulross
@TheSulross 3 жыл бұрын
As engineering student I had learned FORTAN (punch card style), then BASIC on 8-bit micro (wasn't Dartmouth BASIC and just used it to peek and poke at hardware devices), but on purchasing a 128K Mac I was able to get a Pascal and played with the Game of Life. A CS grad student buddy explained some things going on that were new concepts to me - so this Pascal thing was kind of eye opening. And grad student buddy and I ported Donald Knuth's TeX to the Mac and gave it a graphical screen preview. It was written in Pascal. But then I got my hands on Lightspeed C for the Mac and that was just the bees' knees. My crush with Pascal was over. C was clearly the language for serious software development in the latter 80s. In getting paid to write software, still used Apple's MPW Object Pascal some because C didn't do objects yet - but there was this thing called CFront...and some dude with a funny name from Denmark...
@lawrencedoliveiro9104
@lawrencedoliveiro9104 3 жыл бұрын
I used MPW for many years, with a few different languages. I never understood why other programmers preferred those more limited IDE thingies ...
@stevenbridge
@stevenbridge 3 жыл бұрын
I remember taking Pascal at Simon Fraser U. in the early 70's. I believe it was running on a PDP11 running MTS (Michigan Terminal System) and supported at level 5 (take at your own risk)! I had to read (skim) all 12 volumes of the MTS manual before I could write my program! As an aside, do you remember APL (A Program Language) and could you do a video on it if you haven't done already. Thanks in advance.
@caw25sha
@caw25sha 3 жыл бұрын
Loads of huge purple and pink switches? Yep, PDP-11! (Although you students probably didn't get to go anywhere near it.)
@stevenbridge
@stevenbridge 3 жыл бұрын
@@caw25sha I did for one project. I was writing a database program for a grad student and I was given computer time in the evening which was in the computer building. I got to see the mavens and gatekeepers going around doing their business. Very exciting to a second year student! But you are right, the rest of the time we were a mile away communicating over 300 baud modems!
@Obscurai
@Obscurai 3 жыл бұрын
MTS was the OS for IBM 370s. Don't think it was implemented on PDP11.
@dustysparks
@dustysparks 3 жыл бұрын
I actually took my AP Computers exam in Pascal... which was the last year it was used in academia in any college or university anywhere near to me at the time ... :(
@Gooberpatrol66
@Gooberpatrol66 3 жыл бұрын
Have you talked about Forth?
@tibbydudeza
@tibbydudeza 3 жыл бұрын
Learned programming using Turbo Pascal 3 and then moved over to C when I started my programming career.
@smurfyday
@smurfyday 3 жыл бұрын
This is amazing throughout. That the brilliant Wirth joke was NOT my main takeaway says it all.
@framegrace1
@framegrace1 3 жыл бұрын
The only problem with pascal, is that some people took it too seriously, was just an exercise on creating a beginners language. Wirth later fixed it in Modula 2, but no one cared. We used Modula 2 at the uni. It's basically Pascal with Mr Kernighan issues solved. He took very seriously the lack of modularity, which are like 3 out of 9 of Kernighan concerns. So seriously that he named the language after this feature. Lots of languages used similar system based upon it afterwards.
@lawrencedoliveiro9104
@lawrencedoliveiro9104 3 жыл бұрын
4:14 They went on to create the Free University Compiler Kit. When Richard Stallman was just starting his GNU project, he asked about using their code to build his GNU C compiler. They somewhat facetiously replied that, while the University might be Free, the Compiler Kit certainly wasn’t. So Stallman had to go off and create his own codebase for GCC from scratch. And the rest, as they say, is history. Does anybody still remember the Free University Compiler Kit?
@francisklein1746
@francisklein1746 3 жыл бұрын
At 9:12 these 9 major lacks an issues in pascal where all elegantly solved in the borland pascal v5.0 (and sucessors) implementation. That version made pascal a very reliable and powerful language (including truely powerful Oject oriented programming paradigms) With that impelmentation, it was neaerly impossible to write programming bugs because the compiler did not gives you binary file if source contains even a single programming rule error. Whit such strict environement, i swear that you rapidely know perfectly all what the language can do for you, and why permissive manipulation allowed in other languages are so dangerous. and unpredictable
@lasersimonjohnson
@lasersimonjohnson 3 жыл бұрын
Delphi is brilliant. Less cluttered than C, Just as capable and nearly as fast. 😎
@asganaway
@asganaway 3 жыл бұрын
Loved Delphi, was really a shame it was forgotten so quickly
@shinyhappyrem8728
@shinyhappyrem8728 3 жыл бұрын
There's also Free Pascal/Lazarus
@rs-tarxvfz
@rs-tarxvfz 3 жыл бұрын
Hey computerphile admins, I wonder why you guys have not made anything about Containers? Can you please make video on etymology of Containers and INTERNALs of Container?
@nuk1964
@nuk1964 3 жыл бұрын
One thing that's you might notice about Pascal is that the standard input/output system is implied to be buffered. That's fine if you're running a program in "batch mode" where you you'd use JCL to set up the filedefs that maps the input and output to reference disk files. The semantics of the input system tend to get a bit weird at times if you try to use interactive I/O mode. For example a typical bit of code might be: do while not eof() begin write('What is your name?'); readln(myname); writeln('Hello ',myname); end; A typical behavior you'd see when you run such a program is a blinking cursor -- you don't see the prompt until *after* you hit Enter. That's because the system can't determine the value of eof() until it has attempted to read input (at least this is the type of behavior you'd seen on mainframe and minicomputer environments -- most microcomputer implementations will behave as you might expect).
@peterfireflylund
@peterfireflylund 3 жыл бұрын
Wirth's Pascal barely had any I/O... The Pascal you are talking about come about much later.
@nuk1964
@nuk1964 3 жыл бұрын
@@peterfireflylund (shrug) I'd not used Pascal until I was at university in the early 1980s (so yes, what I had been using was much newer than the original version -- probably not much older than late 1970s vintage). The first version of Pascal I'd used was on a Berkeley Unix system on a DEC VAX11/750 minicomputer, then later I'd fiddled about in VS Pascal in VM/CMS system on an IBM-4341 minicomputer. The closest I'd gotten to the original Pascal was one that was on a Control Data Cyber 750 mainframe -- apparently this version of Pascal was a descendant of the Zurich compiler for the CDC 6600). First microcomputer version of Pascal I'd used was Turbo Pascal in CP/M. Had never used the UCSD Pascal system. On the IBM-PC it was Turbo Pascal (had used versions 3.0 thru 6.0). Never fiddled around with the Microsoft Pascal.
@lawrencedoliveiro9104
@lawrencedoliveiro9104 3 жыл бұрын
Many implementations did “lazy buffering” to get around this. For example, DEC’s VMS compiler (which I liked because of its system-programming extensions).
@scottfranco1962
@scottfranco1962 Жыл бұрын
@@peterfireflylund No, that was 1976 Pascal. It had I/O.
@jpjude68
@jpjude68 3 жыл бұрын
Though, even if pascal may have been a capable language to learn on then, it seems to have evolved quite well over the years with delphi, and it's open-source counterpart Freepascal and the Lazarus IDE. I'm using it at work after having to 'convert' since most software work was historically made in delphi and pascal, but i do groan at the lack of support for bitfields when declaring a type... that and macros
@asganaway
@asganaway 3 жыл бұрын
Man I never meet a Delphi programmer in my life , didn't have a great success sadly
@Esico6
@Esico6 3 жыл бұрын
Gabriele De Carli Here a delphi dev too. I bake software voor mac and windows and IOS iPad. Same code multiple platforms. No external libs or runtimes necessary. Which tool can do that?
@cidercreekranch
@cidercreekranch 3 жыл бұрын
Pointer may be dangerous but they are entirely useful. That's why I really fell in love with C. Not as restrictive as Pascal and less tedious than assembly.
@francisklein1746
@francisklein1746 3 жыл бұрын
I agree with you, pointers are useful and powerful. But power is danger. when something is dangerous, it is more reliable to manipulate it with reliable automatism rather than with human algorithmical risky aproximations. Even more in large programs or with large amount of data manipulations. The automatic implicit pointers manipulations, in Pascal, induces reliability - regardless to the complexity of the program. Moreover, as pointer manipulation in pascal can be explicit, and ONLY if inherent automated pointer management can't do the job, the programmer can make same pointers manupulations that C permit, and with the same efficiency. BUT you see it in the source code - and in a comprehensive way! To enhance code relyability, you can concentrate those non standard manipulations in specialized parts of your code (IE in a specific library of types manipulations). So you can be are aware of the risks that you may encounter and reduce then... At your own risk. By the way : Even nowadays the usage of pointers in avionics C programs is still prohibited. It's not a side effect... lol Best regards
@Pekkhum
@Pekkhum 3 жыл бұрын
@@francisklein1746 I wish my coworkers would concentrate any part of the code. Why make a function when you can copy paste the statements to 20 places in the code? It is a lot of work to change it? That is just how programming works! Oh, the bugs...
@ka9dgx
@ka9dgx 3 жыл бұрын
I had cooperative multi-tasking figured out under MS-DOS and Turbo Pascal, there's nothing you can't do in modern pascal.
@peterfireflylund
@peterfireflylund 3 жыл бұрын
It's not hard to ease those restrictions a little. That's what Anders Hejlsberg did with Poly/Turbo Pascal more or less from the start. It worked very, very well -- but gave some of the pointer problems that C has. Not as many, for Pascal has "var" parameters, proper arrays that don't look suspiciously like pointers, and Poly/Turbo Pascal had real strings. That removes many of the uses of pointers in C. There are other ways of doing it as well. Wirth explored some of them in his successor languages. Modula-2 has a type called Address for raw machine addresses (and a module just for bare metal access to the machine). Making pointers totally safe is a really hard problem that we are only beginning to solve well now. It requires some pretty fancy type theory. The only practical language right now that gives us safe pointers -- that are actual pointers -- is Rust.
@erikkarsies4851
@erikkarsies4851 3 жыл бұрын
After the 'joys' of pascal... it was followed up with Modula-3 (I mean after pascal there was course in Modula-3) ... any thoughts on that language Computerphile ?
@lawrencedoliveiro9104
@lawrencedoliveiro9104 3 жыл бұрын
Modula-2.
@erikkarsies4851
@erikkarsies4851 3 жыл бұрын
@@lawrencedoliveiro9104 Edited it a bit... I ment after the Pascal course there was a Modula-3 course that wasn't the direct succesor of Pascal
@alexmihoc3500
@alexmihoc3500 3 жыл бұрын
Fun fact: Romanian schools still make programing courses in Turbo Pascal and VisualFoxPro and the final exams are taken in Turbo Pascal lmao
@karimjerbi7084
@karimjerbi7084 3 жыл бұрын
Same in Tunisia :(
@Pluzas
@Pluzas 3 жыл бұрын
@@karimjerbi7084 shtakra?
@karimjerbi7084
@karimjerbi7084 3 жыл бұрын
@@Pluzas admis bac ^^
@alexmihoc3500
@alexmihoc3500 3 жыл бұрын
@@karimjerbi7084 uncool
@TheBigThing23
@TheBigThing23 3 жыл бұрын
*They can be taken in Pascal. The vast majority of students learn and take their exams in C/C++ and it's quite rare to find someone who took the final exam in Pascal (~1%)
@treyquattro
@treyquattro 3 жыл бұрын
I used to program in Pascal. Can hardly remember a thing about it now! A program ended with with a period, IIRC.
@wilhelmsarasalo3546
@wilhelmsarasalo3546 Жыл бұрын
Even today if I need to write a Windows GIU program, I find FPC/Lazarus hard to beat. Pascal is like C with a different syntax, in Pascal you usually type more and in C a typo might well compile to do something you did not intend. In Pascal that is usually a syntax error. Performance and code size seem comparable. There C++ and Object Pascal are also comparable with differences in multiple inheritance, but Object Pascal has interfaces, nothing huge there.
@kevintedder4202
@kevintedder4202 3 жыл бұрын
My coding progression was BBC Basic -> Pascal -> C. 10 BBC Basic was great 20 the best of its day 30 but had it limits. Begin Pascal was a great aid to understanding structured programs. End If (Pascal did not exist) { I'd never have grasped C without it }
@scottfranco1962
@scottfranco1962 Жыл бұрын
program test(output); type pi = ^integer; var p: ^pi; begin new(p); new(p^); p^^ := 42 end. Original Pascal, checked on two different compilers. The pi definition was because the type after ^ must be a type id. Not pretty, but works. Making pointer definitions take a type id perhaps was designed to depreciate the idea of pointers to anything, but didn't make it impossible. The central idea of restricting pointers in Pascal was that a pointer is bound to its type, and that could only be allocated from dynamic storage. Thus coining a pointer to a static object as &p (in C) was not possible.
@erikkarsies4851
@erikkarsies4851 3 жыл бұрын
After hobby programming GFA Basic and some assembly on the Atari ST ... HP Pascal on HP Unix wasn't a fun experience!
@WhoShortsVids
@WhoShortsVids 3 жыл бұрын
Nice garden
@caw25sha
@caw25sha 3 жыл бұрын
Are those Leylandii? 😧
@profdaveb6384
@profdaveb6384 3 жыл бұрын
Thank you! It was designed by my wife and I spend a small fortune on it because I have to get in [a lot of] gardening help. Yes there is a backdrop of well-manicured Cupressus Leylandii and you probably noticed also, in my "sub-tropical corner", the New Zealand tree fern, right next door to a "Cordeline Australis"
@crdrost
@crdrost 4 ай бұрын
RIP, Niklaus. 😢
@bell1095
@bell1095 Жыл бұрын
1:27 ETH is acronym for „Eidgenössische“ Technische Hochschule not „Elektrotechnische“
@MrPetzold123
@MrPetzold123 3 ай бұрын
In modern Free Pascal, you can do: program ptrptrtest(output); type pInt = ^integer; ppInt = ^pInt; var i: integer = 42; pI: pInt = @i; ppI: ppInt = @pI; begin Writeln('Before: ', i); ppI^^ := 43; Writeln('After: ', i); end. ./ptrptrtest Before: 42 After: 43 ...of course you can have as many levels of pointers you want :). Check it out, it is a *very* nice language w/ cross platform Lazarus IDE.
@guysimpson9420
@guysimpson9420 3 жыл бұрын
My first degree programming language - simple, easy and quick to learn.
@franciscovarela7127
@franciscovarela7127 3 жыл бұрын
Pascal - a beautiful language.
@maxheadrom3088
@maxheadrom3088 7 ай бұрын
I think Pascal is a better language for teaching than C because of the tight types. People who have to learn programming but are not in Computer Science/Engineering strugle with C and, imho, learn less. The first language I learned was BASIC (learned very little), the second (learned a lot!) was LOGO and later PASCAL. My brother taught them to me so when I got to Electric Engineering I had no problems with programming but almost all my colleagues struggled with it at the beguinning only because they adopted PASCAL.
@Gwyrddu
@Gwyrddu 3 жыл бұрын
I disappointed there wasn't an Algolxxx, especially given the connection to Amsterdam.
@cyberpass
@cyberpass 3 жыл бұрын
What about Delphi?
@davemiller6055
@davemiller6055 Жыл бұрын
I learned a little Pascal in High School in the mid 80s. I had already learned Basic. My thought was that kids should be taught Pascal instead of Basic to introduce them to programming. I liked it much more than Basic and it was easy.
@HomeBurger
@HomeBurger 3 жыл бұрын
Tragic that these ongoing earthquakes are being largely ignored.
@zazezy
@zazezy 3 жыл бұрын
Please, could you activate the auto generated subtitle on this chanel.
@profdaveb6384
@profdaveb6384 3 жыл бұрын
My hand-created (non-automatic) subs are now with Sean. Hopefully won't be long now before they are up-loaded
@zazezy
@zazezy 3 жыл бұрын
@@profdaveb6384 thank you, i did not expect so much
@DavidLindes
@DavidLindes 3 жыл бұрын
I always disliked Pascal... but didn't know enough at the time to quite articulate why. Had I known of Kernighan's paper at the time, perhaps I'd have given it to my instructor. ;)
@OchreMarsh
@OchreMarsh 3 жыл бұрын
The first programming I've learned is Pascal.
@dogaarmangil
@dogaarmangil 5 ай бұрын
Interesting, everybody who is anybody in computing always ends up wandering to the US somehow, or ended up, I wonder if it's still happening. 1:18 ETH is short for "Eidgenössische Technische Hochschule", or the Federal Technical University.
@ka9dgx
@ka9dgx 3 жыл бұрын
Talk about timing.... I was out of programming for a few decades, and dove back into it recently. This morning I needed a string function that didn't seem to be in the library, so I imported code from my MS-DOS Turbo Pascal days, and it worked. 8) Here's the version notes from the header. ;-) { Author : Michael Warot Date : January, 1988 Purpose : Put together all of those misc. functions and procedures 07-11-88 MAW Add routine [WaitForKey] to wait for ANY keypress 06-06-89 MAW Move TrapInt for compatability with TP5.5 08-01-89 MAW Split up MISC 11-03-89 MAW Add SKIP and GRAB for string parsing Add GrabWord to pull a number from a string 11-13-91 MAW Remove Uses CRT,Dos; ***NOT NEEDED!*** 02-11-92 MAW Fix bug in Macro_Substitute 08-14-2020 MAW Port to Windows 10 and Lazarus/Free Pascal }
@dandan7884
@dandan7884 3 жыл бұрын
32 years of maintenance!? wow
@M1ckeyD
@M1ckeyD 3 жыл бұрын
I need to learn pascal.
@rjj5574
@rjj5574 3 жыл бұрын
I loved turbo pascal.
@mheermance
@mheermance 3 жыл бұрын
When I learned Pascal I thought it was a great language, so much better than Fortran. But when I learned some real languages I realized how much it was lacking.
@stevehallam0850
@stevehallam0850 3 жыл бұрын
Borland Turbo Pascal was very successful and accessible.
@nuk1964
@nuk1964 3 жыл бұрын
Turbo Pascal also probably contributed to decline of popularity of UCSD Pascal. On CP/M and IBM-PC you could compile a program in Turbo Pascal just as quickly (if not faster) than in UCSD Pascal --- and the generated binary ran natively on the computer. Add to this the relatively low price (If I remember correctly about 30~50 US Dollars) would put be quite affordable to the hobbyist (especially one that would've been frustrated by the slowness of interpretive BASIC).
@KX36
@KX36 3 жыл бұрын
I can't hear the word Pascal without thinking of Rick Mayall
@EdwardChan.999
@EdwardChan.999 Жыл бұрын
FYI, my highschool still teaches Pascal XD
@WiziwigeAgario
@WiziwigeAgario 3 жыл бұрын
uses wincrt;
@naodtadelemusic
@naodtadelemusic 3 жыл бұрын
I wish he was my grandfather
@TakuraNyagumbo
@TakuraNyagumbo Ай бұрын
2:10 Niklaus Wirth joke 😂
@upyourtube123
@upyourtube123 3 жыл бұрын
bad programmers can make a mess in any language some of the worst code i’ve ever had to deal with was in pascal
@Bebtelovimab
@Bebtelovimab Жыл бұрын
So an eminent computer scientist at Bell Labs criticized a teaching language as being inappropriate for implementing Unix utilities. OK.
@OBGynKenobi
@OBGynKenobi 3 жыл бұрын
this one needs image stabiliser. it's shaky.
@nuk1964
@nuk1964 3 жыл бұрын
Ever wonder if there's a market for a camera that features a "Don Knotts" (de)stabilization mode ? (reference to his signature shtick of looking and behaving extremely nervous)
@someman7
@someman7 3 жыл бұрын
C can't go down to the level of bits either, and it's been a standards for systems programming for decades. So why is that a problem for Pascal?
@scottfranco1962
@scottfranco1962 Жыл бұрын
He was referring to the lack of and/or/not for integers, as in original Pascal. C can do that, and indeed, most extended Pascals can do that. Is it possible to do it in original Pascal? Yes, actually. I have routines like that. It isn't pretty, but it is possible.
@lawrencedoliveiro9104
@lawrencedoliveiro9104 3 жыл бұрын
11:28 *Ahem* Unchecked variants, anybody?
@joaovitormatos8147
@joaovitormatos8147 3 жыл бұрын
I still use pascal cause I'm lazy
@blableu4519
@blableu4519 3 жыл бұрын
Nockel
@black_platypus
@black_platypus 3 жыл бұрын
Who puts down a cookie on a garden table chocolate side down? :O
@ysfkfnd
@ysfkfnd 3 жыл бұрын
Rev up your engines!
@rchandraonline
@rchandraonline 3 жыл бұрын
Dr., Dr., Dr.....the "g" is silent.
@moldybaguette567
@moldybaguette567 3 жыл бұрын
In south africa we have learn delphi for IT and i hate it with a passion
@excitedbox5705
@excitedbox5705 3 жыл бұрын
At least they are not teaching coldfusion or ASP :D My computer science courses all started with Java and I hated that language. It was so much typing and uselessly long names for every statement.
@moldybaguette567
@moldybaguette567 3 жыл бұрын
excited box yeah but at least java is still in use and you can move to other hard typed languages easily (idk java but i assume its hard types) also when you learn/learnt python it would feel sooo easy
@caw25sha
@caw25sha 3 жыл бұрын
I think a problem with CS and programming at undergraduate level is that often the course committee use select the languages they used 2 or 3 decades earlier but which are now obsolete. Not universal but all too common. I know someone who did geology and took a module in statistics taught in Fortran, only about 10 years ago when R was probably the de facto standard.
@dandan7884
@dandan7884 3 жыл бұрын
delphi was the first one i got into to learn the basics of programming
@smurfyday
@smurfyday 3 жыл бұрын
Joke starts ~1:50
@mikesummers-smith4091
@mikesummers-smith4091 3 жыл бұрын
Eidgenossische Technische Hochschule (Federal Institute of Technology), Zurich
@shawnmofid7131
@shawnmofid7131 3 жыл бұрын
I loved the joke.
@raphzahn82
@raphzahn82 3 жыл бұрын
I don't like the syntax of Pascal. Like begin end; it looks ridiculous. But I like the set data type
@stanrogers5613
@stanrogers5613 3 жыл бұрын
And I despise curly braces and significant white space. That's all just aesthetic taste, and has nothing whatsoever going for it as a technical argument.
@raphzahn82
@raphzahn82 3 жыл бұрын
@@stanrogers5613it is a high level programming language. And apart from technical questions design questions play a big part in it. Pascal was created with words similar to a human language. Longer functions with boxed begin end parts are horrible to read. Thus the C-syntax survived and evolved stronger into more variations than the Pascal stuff. Although the Pascal syntax might be easier to comprehend for beginners.
@nuk1964
@nuk1964 3 жыл бұрын
Speaking of sets... One thing that had me scratching my head on one implementation of Pascal -- on a Control Data mainframe (apparently the compiler I was using was related to the original compiler on the CDC 6600). You couldn't declare a set of char, but you could declare a set of a subrange of char. It wasn't until I'd noticed the memory architecture -- 6-bit bytes arranged in 10-byte words. With 6 bitsa you had 64 character codes -- but a word only gave you 60 bits -- not enough to represent a set. The other thing that the Control Data mainframe made clear to me -- the rationale behind the "eoln" function -- and why you "couldn't simply look for 'linefeed' or 'carriage return' characters" --- there are no such character codes. I vaguely recall end-of-line on the system was defined to be a consecutive run of zero-byte values aligned on a word boundary.
@kc9scott
@kc9scott 3 жыл бұрын
@@nuk1964 I've used C for most of my adult life, but I do miss Pascal's "set of char" construct. Back in the '80s on Apple (UCSD) Pascal, it let me create a line-input routine where I could easily specify the set of chars (i.e. keystrokes) that would end the entry of that line, and then find out which key the user ended the line with. I'm still waiting/hoping for someone to create an OS (or environment or input library?) where shift-enter generates a different character code than enter. With it, pressing shift-enter would let the user move up a line, as it does in a spreadsheet.
@scottfranco1962
@scottfranco1962 Жыл бұрын
The original theory was that English words were easier to read than special characters. Not necessarily easier to type (hence C is often referred to as a "write only language"). This principle was carried to ridiculousness with Cobol.
@tekvax01
@tekvax01 3 жыл бұрын
and now pascal is called Delphi...
@mattsadventureswithart5764
@mattsadventureswithart5764 3 жыл бұрын
Pascal is still Pascal. Delphi is just one implementation. Read the comments for other implementations, if you wish to learn
@tekvax01
@tekvax01 3 жыл бұрын
@@mattsadventureswithart5764 I'm always up for learnin'! Sorry didn't mean to strike a nerve, I was merely making an observation. We use Delphi at work all the time!
@fburton8
@fburton8 3 жыл бұрын
@@tekvax01 So do I! It's a bit more than Pascal because it has object-oriented features too.
@mattsadventureswithart5764
@mattsadventureswithart5764 3 жыл бұрын
@@tekvax01 No worries, friend. Sought to pass info you appeared not to have :)
@charlieangkor8649
@charlieangkor8649 3 жыл бұрын
pascal. where you could not have strings longer than 256 chars. no thanks.
@scottfranco1962
@scottfranco1962 Жыл бұрын
Actually, that is/was a limitation of Turbo Pascal, not Pascal. And they fixed it later.
@saiskandapgs
@saiskandapgs 3 жыл бұрын
🤔
Has Generative AI Already Peaked? - Computerphile
12:48
Computerphile
Рет қаралды 246 М.
Reflections on Trusting Trust - Computerphile
11:55
Computerphile
Рет қаралды 80 М.
顔面水槽がブサイク過ぎるwwwww
00:58
はじめしゃちょー(hajime)
Рет қаралды 36 МЛН
I MADE A CARDBOARD SWING!#asmr
00:40
HAYATAKU はやたく
Рет қаралды 26 МЛН
Teenagers Show Kindness by Repairing Grandmother's Old Fence #shorts
00:37
Fabiosa Best Lifehacks
Рет қаралды 28 МЛН
【獨生子的日常】让小奶猫也体验一把鬼打墙#小奶喵 #铲屎官的乐趣
00:12
“獨生子的日常”YouTube官方頻道
Рет қаралды 93 МЛН
ALGOL 68 Instead of Pascal? - Computerphile
10:13
Computerphile
Рет қаралды 51 М.
ALGOL 60 at 60 - Computerphile
14:06
Computerphile
Рет қаралды 89 М.
The Computer Chronicles - Programming (1984)
23:10
The Computer Chronicles
Рет қаралды 62 М.
Computer Scientist Answers Computer Questions From Twitter
14:27
The First Internet Worm (Morris Worm) - Computerphile
14:21
Computerphile
Рет қаралды 98 М.
Types of PDF - Computerphile
13:57
Computerphile
Рет қаралды 129 М.
Laziness in Python - Computerphile
14:21
Computerphile
Рет қаралды 362 М.
Rust: When C Code Isn't Enough
8:26
CodeAhead
Рет қаралды 148 М.
Using Regular Expressions - Computerphile
11:39
Computerphile
Рет қаралды 124 М.
顔面水槽がブサイク過ぎるwwwww
00:58
はじめしゃちょー(hajime)
Рет қаралды 36 МЛН