BCPL: Difference between revisions
Created page with "==Description== A language in the Algol family of programming languages, a direct descendant of CPL and a precursor to C and C++ although its syntax is more in..." |
No edit summary |
||
Line 2: | Line 2: | ||
A language in the [[Algol]] family of programming languages, a direct descendant of [[CPL]] and a precursor to [[C]] and [[C++]] although its syntax is more in line with other Algol languages than the "keyboard oriented" C. | A language in the [[Algol]] family of programming languages, a direct descendant of [[CPL]] and a precursor to [[C]] and [[C++]] although its syntax is more in line with other Algol languages than the "keyboard oriented" C. | ||
BCPL's main claim to fame is that it was used to write the main portions of the [[Amiga]] operating system in the 80's and the highly influential but by now largely forgotten CDOS networked operating system a decade earlier, but the latter heavily influenced the development of [[TCP/IP]] and the Internet. | BCPL's main claim to fame is that it was used to write the main portions of the [[Amiga]] operating system in the 80's (Actually based on the earlier BCPL OS, TripOS) and the highly influential but by now largely forgotten CDOS networked operating system a decade earlier, but the latter heavily influenced the development of [[TCP/IP]] and the Internet. | ||
Although many people saw BCPL as outdated and quaint after the introduction of C there were quite valid reasons for using it in preference to C when writing operating systems. Early versions of C were somewhat propriety and although AT&T shared source code with American universities and gave them permission to use their toolchains, foreign institutions did in general not get such permissions, early versions of C also lacked some of the system programming concepts that existed in BCPL. People were less than happy with the C syntax not only the inconsistencies and anachronisms, but the fact it is designed to be faster to code on the [[DEC]] [[VAX]] minicomputers that the original authors used, the problem was that the DEC keyboard layout differed quite a bit from the IBM standard and foreign keyboards more still, so much like [[PERL]] the features that were intended to make it faster actually made it slower for everyone except a small subset of the user base. And perhaps most surprisingly when people started porting programs from BCPL to C they found that rather than being faster the C code was actually slower, but the compilers simply could more easily take advantage of structures in BCPL source code than in C code and it was not until the 90's when highly optimising C compilers started to arrive on the market that it caught up. | Although many people saw BCPL as outdated and quaint after the introduction of C there were quite valid reasons for using it in preference to C when writing operating systems. Early versions of C were somewhat propriety and although AT&T shared source code with American universities and gave them permission to use their toolchains, foreign institutions did in general not get such permissions, early versions of C also lacked some of the system programming concepts that existed in BCPL. People were less than happy with the C syntax not only the inconsistencies and anachronisms, but the fact it is designed to be faster to code on the [[DEC]] [[VAX]] minicomputers that the original authors used, the problem was that the DEC keyboard layout differed quite a bit from the IBM standard and foreign keyboards more still, so much like [[PERL]] the features that were intended to make it faster actually made it slower for everyone except a small subset of the user base. And perhaps most surprisingly when people started porting programs from BCPL to C they found that rather than being faster the C code was actually slower, but the compilers simply could more easily take advantage of structures in BCPL source code than in C code and it was not until the 90's when highly optimising C compilers started to arrive on the market that it caught up. |
Revision as of 01:36, 24 December 2014
Description
A language in the Algol family of programming languages, a direct descendant of CPL and a precursor to C and C++ although its syntax is more in line with other Algol languages than the "keyboard oriented" C.
BCPL's main claim to fame is that it was used to write the main portions of the Amiga operating system in the 80's (Actually based on the earlier BCPL OS, TripOS) and the highly influential but by now largely forgotten CDOS networked operating system a decade earlier, but the latter heavily influenced the development of TCP/IP and the Internet.
Although many people saw BCPL as outdated and quaint after the introduction of C there were quite valid reasons for using it in preference to C when writing operating systems. Early versions of C were somewhat propriety and although AT&T shared source code with American universities and gave them permission to use their toolchains, foreign institutions did in general not get such permissions, early versions of C also lacked some of the system programming concepts that existed in BCPL. People were less than happy with the C syntax not only the inconsistencies and anachronisms, but the fact it is designed to be faster to code on the DEC VAX minicomputers that the original authors used, the problem was that the DEC keyboard layout differed quite a bit from the IBM standard and foreign keyboards more still, so much like PERL the features that were intended to make it faster actually made it slower for everyone except a small subset of the user base. And perhaps most surprisingly when people started porting programs from BCPL to C they found that rather than being faster the C code was actually slower, but the compilers simply could more easily take advantage of structures in BCPL source code than in C code and it was not until the 90's when highly optimising C compilers started to arrive on the market that it caught up.