Timeline for When were the analogs of the C operators "break" and "continue" introduced in Pascal?
Current License: CC BY-SA 3.0
25 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Jan 18, 2019 at 18:52 | vote | accept | Leo B. | ||
| Aug 8, 2018 at 5:25 | history | edited | Leo B. | edited tags | |
| Jul 4, 2018 at 5:47 | answer | added | Scott Franco | timeline score: -3 | |
| Jan 8, 2018 at 19:17 | comment | added | supercat | @cup: Turbo Pascal allowed a program to be built using multiple source files, though if they were on floppies that would of course severely degrade compile speed. Having different source files use different prefixes for "private functions" and variables is semantically essentially the same as having separate compilation units, provided no two files pick the same prefix. | |
| Jan 8, 2018 at 19:09 | comment | added | cup | @supercat Separate compilation isn't anything to do with speed: it is a dependency build. This is different from independent compilation. | |
| Jan 8, 2018 at 16:46 | comment | added | supercat | @cup: Turbo Pascal 3.0 didn't support separate compilation except by using manual overlays, but could still manage an edit-compile-run-edit cycle faster than systems that used separate compilation. A number of notable programs, including the original Tetris, were produced using Turbo Pascal. | |
| Jan 5, 2018 at 17:24 | comment | added | JeremyP | @cup Nothing in the definition of Pascal makes it a requirement to use p-code. Pascal compilers could and frequently did compile to native code. The lack of threading also would not have been considered a disadvantage in the 1970's and 80's because no common language had threads at that time. C didn't even have IO. | |
| Jan 5, 2018 at 12:14 | comment | added | cup | Pascal is OK as a teaching tool. Using it as a production language is really painful - no separate compilation, no hardware interface (unless it was memory mapped), no threads. Any usable version was a dialect. It was also quite slow because of the p-code interpreter. I had to use UCSD Pascal for a production system once. It couldn't be batched and the manuals for using p-code were difficult to get hold of. There wasn't any facility for multi-tasking either. | |
| Jan 5, 2018 at 9:39 | answer | added | JeremyP | timeline score: 1 | |
| Jan 4, 2018 at 22:45 | comment | added | Raffzahn | Hmm, one problem here might be the 'any pre-1979 dialect of Pascal' requirement, as PASCAL wasn't realy intended to be used as a language in the first place. It was just an example for a language used by Wirth in his complier class. As a result, next to every other student at ETH did create his own dialect :)) | |
| Jan 4, 2018 at 22:09 | answer | added | dim | timeline score: 9 | |
| Jul 13, 2017 at 16:16 | comment | added | Leo B. | @dirkt Me: "the whole UCSD Pascal OS was written in a Pascal "not for actual software developers" (so apparently they shouldn't have been able to write it, then)". That does not follow. Should be "so apparently their productivity level and/or code quality was not that it could have been". | |
| Jul 13, 2017 at 15:22 | comment | added | dirkt | Wirth was a minimalist, and that's how he wanted the language - after all, it was his language. The spin "when did Pascal first cater to actual software developers" makes as little sense as the original question (sorry) - the whole UCSD Pascal OS was written in a Pascal "not for actual software developers" (so apparently they shouldn't have been able to write it, then). As were plenty of other programs. It is a matter of taste, not of good programming practice (though I personally prefer to have it, just like you do). | |
| Jul 13, 2017 at 15:16 | comment | added | Leo B. | @dirkt The language was designed for education, so I don't blame Wirth for not including break and continue or equivalents in the first version (or even for continuing this stubbornness). But as soon as the language is to be used for engineering, using "tamed gotos" is not a matter of taste, it is a matter of good programming practice. Therefore the point of the question is to find out which dialect of Pascal first catered to actual software developers. | |
| Jul 13, 2017 at 9:15 | comment | added | dirkt | Also see here his reaction to the modest changes UCSD Pascal introduced: "When UCSD Pascal began to spread, their tinkering with Pascal raised a fair amount of ire from some quarters, not least from Wirth himself, a pedantic sort who regarded the language in its original form as perfect, with everything it needed and nothing it didn’t." | |
| Jul 13, 2017 at 9:00 | comment | added | dirkt | The point is that the question as it stands makes no sense: It's not like this was forgotten, and then suddenly people realized this and said "oh, let's introduce it", and after that every Pascal dialect did it that way. Instead, it's a matter of taste, and whether the people writing the Pascal compilers did have different ideas of how the language should look like. So there's no "first", no "introduction", just people's taste. Wirth was in all likelyhood perfectly aware of this construct when he designed Pascal. | |
| Jul 13, 2017 at 8:58 | comment | added | dirkt | I perfectly know, and I don't object to break/continue (or other forms of "tamed" gotos). I don't think Wirth would publicly express objection, but he didn't include break/continue in Oberon (1986, last revision 2016 by himself) either. Does that count? :-) | |
| Jul 13, 2017 at 7:04 | comment | added | Leo B. | @dirkt In case you haven't noticed, those goto and exit cannot jump to arbitrary places but only to the beginning and to the end of structured operators, very much like break and continue. Niklaus Wirth had 35 years and counting to express objection to break and continue in Turbo Pascal. Has he ever? | |
| Jul 13, 2017 at 6:58 | comment | added | dirkt | Given that Nikolaus Wirth (together with others like Dijkstra) was one of the main proponents of "structured programming", adding goto and exit to Pascal is of course a complete perversion of his ideas. These "features" were missing on purpose, not because of some "oversight". So the answer is probably "as soon as enough time had passed that there were people who didn't understand what Pascal was about, and had to muck with it, and were far enough removed from the creator so he couldn't berate them". | |
| Jul 12, 2017 at 20:50 | history | edited | Leo B. | CC BY-SA 3.0 | Clarified the difference between two types of labels. |
| Jul 12, 2017 at 20:48 | comment | added | Leo B. | @wizzwizz4 I had to look that meme up; no, I think "inalienable" was used to argue with those who had deemed the feature superfluous and claimed that numerical labels should be enough for everybody. | |
| Jul 12, 2017 at 20:43 | comment | added | wizzwizz4♦ | I don't understand the "the inalienable right" part - is that the Pascal equivalent of Not Enough jQuery? | |
| Jul 12, 2017 at 20:38 | history | edited | Leo B. | CC BY-SA 3.0 | Added a foreword. |
| Jul 12, 2017 at 19:08 | history | edited | Leo B. | CC BY-SA 3.0 | typo |
| Jul 12, 2017 at 19:01 | history | asked | Leo B. | CC BY-SA 3.0 |