Click here to Skip to main content

Welcome to the Lounge

   

For lazing about and discussing anything in a software developer's life that takes your fancy.
The Lounge is rated PG. If you're about to post something you wouldn't want your kid sister to read then don't post it. No flame wars, no abusive conduct and please don't post ads.

Technical discussions are welcome, but if you need specific help please use the programming forums.


 
AnswerRe: Are there reasons for beginner programmers to learn C ? Pinmemberwizardzz1-Mar-12 8:48 
AnswerRe: Are there reasons for beginner programmers to learn C ? PinmemberPIEBALDconsult1-Mar-12 8:50 
GeneralRe: Are there reasons for beginner programmers to learn C ? Pinmemberlewax001-Mar-12 8:52 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberPIEBALDconsult1-Mar-12 9:35 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmvpEspen Harlinn1-Mar-12 9:55 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberPIEBALDconsult1-Mar-12 11:00 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmvpEspen Harlinn1-Mar-12 11:05 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberRussell Ranshaw2-Mar-12 5:30 
It's interesting that you mention "assembly".
 
The very history of C as a programming language speaks loudly.
 
Long ago and long ago (as the Native Americans would say), Bell Laboratories purchased a DEC PDP-7 computer. That machine was quite primitive, more or less a "minimal" computer. It had either 4k or 8k memory of 18 bit words, 16 op-codes, no multiply or divide instructions, no index registers, and primitive indirect addressing. It did have a set of memory locations that were "auto-increment" that simulated very primitive index registers, but were not terribly useful over all.
 
The principle I/O were paper tape and a model 33 teletype. In fact, a bare-bones PDP-7 only had a teletype, in which case it would have been a model 35 ASR, which had paper tape read and write included. VERY slow!
 
Bell Labs wrote a language called BPL (for Bell Programming Language, I think) which they used as an alternative to the assembly language supplied by DEC. I've never seen any details on BPL. However, Bell Labs used BPL to write a FORTRAN compiler for the PDP-7, as odd at that might sound.
 
When DEC came out with the PDP-11, Bell Labs bought one and jumped on it like a duck on a June bug! They wrote a translator that converted the BPL translator (probably other programs as well) to run on the PDP-11. Using the translated BPL, they developed a new language, C.
 
From rags to riches in terms of machine language capability, the C designers included features in the language to utilize many of the newly available features of the PDP-11. In particular, the auto-increment/decrement and to-memory instruction modifiers were incorporated in the ++/--/+=/-= operators. The indirection modifiers gave rise to the pointer operators.
 
The above information I learned from a Bell Labs programmer/developer at at DECUS (Digital Equipment Computer User's Society) meeting. He was one of the original creators of C, but unfortunately I forget his name.
 
He told me that when they developed C, they had in mind a "portable assembler" that would allow them to port code to any architecture by merely writing a translator for C for that new machine. Good C programmers, he said, visualized assembly code as they wrote in C.
 
For anyone interested, here is a link to the PDP-11 "card":

 
[^]
 
Given the .NET availability these days, it makes a lot of sense to do MOST programming in a .NET style language, as the languages/compilers are tailored for cross-platform operation.
 
For most of us, performance penalties are minimal in light of the super-fast multi-core processors we now enjoy. Only a few developers who are involved with projects in which the "utmost farthing" of performance is demanded need to be concerned about the very low-level workings of a given processor. In this case, the original C, with a suitable translation to the target precessor, makes some sense.
 
For beginners, I believe that Small Basic offers a good compromise, as it introduces the use of "objects" despite not being able to create new classes. Its absence of complexity lets one teach about the principals of programming without becoming embroiled with side-bar issues that have little to do with learning what programming is all about. Beginners quickly learn the fundamentals, then are ready to move on. My choice is then C#, as it is a new generation language and can be taught in "layers" after a few "rules" are learned, and new "rules" can be added as needed.
 
One of my "heroes" once wrote:
 
"A computer is like an old-testament god, many rules and no mercy."
- Joseph Campbell
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberSanmayce3-Mar-12 6:15 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberRussell Ranshaw3-Mar-12 8:33 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberSanmayce3-Mar-12 8:50 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberRussell Ranshaw3-Mar-12 10:46 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberSanmayce5-Mar-12 4:18 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberRussell Ranshaw5-Mar-12 5:09 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberSanmayce5-Mar-12 6:03 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberRussell Ranshaw7-Mar-12 6:11 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberSanmayce8-Mar-12 8:36 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberRussell Ranshaw8-Mar-12 9:11 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberSanmayce9-Mar-12 7:54 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberRussell Ranshaw9-Mar-12 10:00 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberRussell Ranshaw12-Mar-12 11:10 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberSanmayce14-Mar-12 8:03 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberRussell Ranshaw16-Mar-12 2:18 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberSanmayce16-Mar-12 9:05 
GeneralRe: Are there reasons for beginner programmers to learn C ? PinmemberRussell Ranshaw17-Mar-12 5:07 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


Advertise | Privacy | Mobile
Web03 | 2.8.140826.1 | Last Updated 27 Aug 2014
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid