"Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid." – Albert Einstein

C / C++


Language Development and Selection

In this sequence of modules we examine the programming process, and the use of related computer languages C and C++. The first module presents an overview of the evolution of computer languages, leading to an understanding of their variety. We will also classify languages by their organisation, structure and operation, leading to a typology of computer languages. By examining their evolution we will also be able to understand the current significance and popularity of specific languages. The module then examines the stages involved in learning new languages by building on experience with other languages. In subsequent modules these techniques are applied to learning the C and C++ languages, but are essentially generic.

Program Development in C

C and its derivative C++ are probably today’s widely-used computer languages, across the full range of hardware platforms. This module looks at the overall characteristics of C by seeing how it fits into the language typology developed in the previous module. It goes on to examine the processes of software creation (editing, compiling, linking) in a PC-based C environment. The module also serves to introduce the specific techniques used for working in the Borland Turbo C system.

Programming in C

The next four Modules present a comprehensive (if not exhaustive) description of all the major components of the C language, with the assumption that the reader is familiar with at least one other equivalent language (such as Pascal). Starting with basic structures and constructs (Fundamental Programming Structures in C) we then examine the topics of input/output (Input and Output In C), data structures (Data Structures Using C) and file operations (File Management in C).

Programming in C++

The C language was largely finalised before the development of object-oriented programming techniques in the first half of the 1980s. C++ was created in the mid-1980s to take advantage of these developments. Initially a superset (or extension) of C, the evolution of C++ has come to affect in turn C itself. The three modules 817-819 survey the language, and to examine the basic object-oriented techniques upon which it is based. Module 817 (C++: Object-Oriented C) introduces the language by comparing it with C and defining the differences between the two languages. Module 818 (Encapsulation of Objects and Methods in C++) describes how the basic OOP techniques are accomplished, whilst Module 819 (Inheritance and Virtual Methods in C++) deals with more advanced OOP methodology.

 

References

The following are a selection of books on the two major topics covered in this unit: comparative programming languages, C and
C++.

Programming Languages

Baron, N.S., Computer Languages : A Guide, Penguin, 1988.

Chorafas, D. N., Fourth And Fifth Generation Programming Languages, McGraw-Hill, 1986.

Dershem, H. and Ipping, M.J., Programming Languages : Structures And Models, Wadsworth Pub. Co., 1990.

Fischer, A.E., The Anatomy Of Programming Languages, Prentice Hall, 1993.

Ford, N.J., Computer Programming Languages : A Comparative Introduction, Horwood, 1990.

Friedman, D.P., Wand, M., and Haynes, C.T., Essentials Of Programming Languages, McGraw-Hill, 1992.

Hofeditz, C.A., Computer Programming Languages In Practice, Heinemann, 1985.

Klerer, M., Design of very high-level computer languages: a user-oriented approach, McGraw-Hill, 1991.

MacLennan, B.J., Principles Of Programming Languages: Design, Evaluation, And Implementation, Holt, Rinehart, and Winston,
1983.

Marcotty, M.H., The world of programming languages, Springer-Verlag, 1987.

Martin, J., Fourth-Generation Languages, Prentice-Hall, 1986.

Sebesta, R.W., Concepts Of Programming Languages, Benjamin Cummings Pub. Co., 1989.

Sethi, R., Programming Languages: Concepts And Constructs, Addison-Wesley Pub. Co., 1989.

Smedema, C. H., The Programming Languages: Pascal, Modula, Hill, And Ada, Prentice/Hall International, 1983.

Tucker, Allen B., Programming Languages, McGraw-Hill, 1977.

Wilson, L.B. and Clark, R.G., Comparative Programming Languages, Addison-Wesley, 1988.

C and C++ Programming

Ammeraal, L., Programs And Data Structures In C, Wiley, 1987.

Berry, J. T., Advanced C programming, Prentice-Hall, 1986.

Berry, R. E. and Meekings B.A.E., A book on C, Macmillan, 1984.

Barkakati, N., The Waite Group’s essential guide to ANSI C, H.W. Sams, 1988.

Bolon, C., Mastering C, Sybex, 1986.

Brown, D.L., From Pascal to C : an introduction to the C programming language, Wadsworth Pub. Co., 1985.

Brown, T. D., C for BASIC programmers, Silicon Press, 1987.

Chapman, A., Mastering C programming, Macmillan Educational, 1991.

Chirlian, P.M., Programming in C++, Merrill Pub. Co., 1990.

Darnell, P.A. and Margolis, P.E., Software Engineering In C, Springer-Verlag, 1988.

Darnell, P.A., C : A Software Engineering Approach, 2nd ed., Springer-Verlag, 1991.

Davis, S.R., C++ programmer’s companion : designing, testing, and debugging, Addison-Wesley, 1993.

Eliason, A.L., C, A Practical Learning Guide, Science Research Associates, 1988.

Ezzell, B., Turbo C++ Programming: An Object-Oriented Approach, Addison-Wesley, 1990.

Ezzell, B., Borland C++ 3.0 Programming, 2nd ed., Addison-Wesley Pub. Co., 1992.

Farmer, M., The Intensive C Course, Studentlitteratur, 1987.

Flamig, B., Turbo C++ – A Self-Teaching Guide, Wiley, 1991.

Flamig, B., Practical Data Structures In C++, Wiley, 1993.

Goldenthal, N., Turbo C Programmer’s Guide, Weber Systems, 1987.

Gonnet, G. H. and Baeza-Yates, R., Handbook Of Algorithms And Data Structures In Pascal And C, 2nd ed., Addison-Wesley Pub.
Co., 1991.

Hancock, L. and Krieger, M., The C primer, McGraw-Hill, 1982.

Hansen, A., C programming : a complete guide to mastering the C language, Addison-Wesley, 1989.

Hansen, T.L., The C++ Answer Book, Addison-Wesley, 1990.

Harbison, S.P. and Steele, G.J., C, A Reference Manual, Prentice-Hall, 1984.

Holub, A.I., The C companion, Prentice-Hall, 1987.

Ince, D., Object-Oriented Software Engineering With C++, McGraw-Hill Book Co., 1991.

Jaeschke, R., Portability And The C Language, 1st ed., Hayden Books, 1989.

Jones, R. and Stewart, I., The Art Of C Programming, Springer-Verlag, 1987.

Kay, J. and Keummerfield, R., C programming in a UNIX environment, Addison-Wesley, 1989.

Kelley, A. and Pohl, I., C By Dissection : The Essentials Of C Programming, Benjamin/Cummings Pub. Co., 1987.

Kelley, A. and Pohl, I., A book on C: programming in C, 2nd ed., Benjamin/Cummings Pub. Co., 1990.

Kelley, A. and Pohl, I., Turbo C: the essentials of C programming, Benjamin/Cummings Pub. Co., 1988.

Kernighan, B.W. and Ritchie, D.M., The C Programming Language, Prentice Hall, 1988.

Kochan, S. G., Programming in C, Hayden Book Co., 1983.

Koenig, A., C Traps And Pitfalls, Addison-Wesley, 1989.

Korsh, J.F., Data Structures, Algorithms, And Program Style Using C, PWS-KENT Pub. Co., 1988.

Lafore, R.W., The Waite Group’s object-oriented programming in Turbo C++, Waite Group Press, 1991.

Ledgard, H. F., C With Excellence : Programming Proverbs, Hayden Books, 1987.

Lewin, M.H., Elements of C, Plenum Press, 1986.

Maguire, S.A., Writing Solid Code: Microsoft Techniques For Developing Bug-Free C Programs, Microsoft Press, 1993.

McCord, J., Borland C++ 3.1 Programmer’s Reference, 2nd ed., Que, 1992.

Muldner, T. and Steele, P.W., C As A Second Language: For Native Speakers Of Pascal, Addison-Wesley, 1988.

McBride, P. K., C Clearly : An Introduction To C Programming, Blackwell Scientific Publications, 1993.

Purdum, J.J. C Programming Guide, Que Corp., 1985.

Oualline, S., Practical C Programming, Reilly & Associates, 1991.

Plauger, P. J., The Standard C Library, Prentice Hall, 1992.

Purdum, J.J., PC Magazine Guide To C Programming, Ziff-Davis Press, 1992.

Rabinowitz, H. and Schaap, C., Portable C, Prentice Hall, 1990.

Ranade, J. and Nash, A., The Elements Of C Programming Style, McGraw-Hill, 1993.

Schildt, H., Advanced C, Osborne McGraw-Hill, 1986.

Schildt, H., Advanced Turbo C, Osborne McGraw-Hill, 1987.

Schildt, H., C: The Complete Reference, Osborne McGraw-Hill, 1990.

Schildt, H., The Art Of C: Elegant Programming Solutions, Osborne McGraw-Hill, 1991.

Sedgewick, R., Algorithms In C, Addison-Wesley Pub. Co., 1990.

Sedgewick, R., Algorithms In C++, Addison-Wesley Pub. Co., 1992.

Shammas, N.C., Introducing C To Pascal Programmers, Wiley, 1988.

Smith, J.D., Reusability And Software Construction: C and C++, Wiley, 1990.

Spuler, D., Comprehensive C, Prentice Hall, 1992.

Swartz, R., Doing Business With C, Prentice Hall, 1989.

Tenenbaum, A. M., Langsam, Y. and Augenstein, M.J., Data Structures Using C, Prentice Hall, 1990.

Traister, R.J., Going From BASIC To C, Prentice-Hall, 1985.

Van Wyk, C.J., Data Structures and C programs, Addison-Wesley, 1988.

Waite, M. and Prata, S., C: Step-By-Step, H.W. Sams, 1989.

Winder, R., Developing C++ software , J. Wiley, 1991.

Woollard, R., The Waite Group’s Master C++: Let The PC Teach You Object-Oriented Programming, Waite Group Press, 1992.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s