Re:Teaching C (2016)
by kazinator on Tuesday October 30, 2018 @02:46PM
(#18340064)
They are not completely different. Entire large projects can be written in C that also compile with a C++ compiler, and it is entirely practical, even easy, to maintain them that way.
My TXR language is like that:
./configure cc=g++
make && make tests
The Lua people have done this too, and call this dialect "Clean C", I think.
Compiles cleanly and tests pass. I usually work with it with a C compiler. Before releases I run it through the C++ compiler to see what breaks, and fix it. (Usually very little and often nothing at all.)
Teaching them at the same time? I'm not sure I would take programming newbies and try to teach them how to program in C such that it also means the same thing as C++. That is to say, I would be confident that I could teach this in a straightforward way; however, the problem would be the lack of supporting material. For instance, there is no reference manual for the "Clean C" language; what would we use as a text book?
One approach would be just to use C resources, and cover the C and C++ differences as one chapter of the course: basically, how to port C programs to the C++ dialect.
I'd definitely teach the students how to leverage the stricter C++ type conversions while keeping the code C, including the following trick:
My TXR language is like that:
The Lua people have done this too, and call this dialect "Clean C", I think.Compiles cleanly and tests pass. I usually work with it with a C compiler. Before releases I run it through the C++ compiler to see what breaks, and fix it. (Usually very little and often nothing at all.)
Teaching them at the same time? I'm not sure I would take programming newbies and try to teach them how to program in C such that it also means the same thing as C++. That is to say, I would be confident that I could teach this in a straightforward way; however, the problem would be the lack of supporting material. For instance, there is no reference manual for the "Clean C" language; what would we use as a text book?
One approach would be just to use C resources, and cover the C and C++ differences as one chapter of the course: basically, how to port C programs to the C++ dialect.
I'd definitely teach the students how to leverage the stricter C++ type conversions while keeping the code C, including the following trick:
This would be a nice way to cover the preprocessor.