0% found this document useful (0 votes)
53 views

01 Introduction To C Programming Language

C was developed in the early 1970s at Bell Labs by Ken Thompson and Dennis Ritchie as a general-purpose programming language for writing system software. It was designed to be compiled using a minimal compiler for the UNIX operating system. By the early 1980s, C had become widely adopted for application software and remains one of the most widely used programming languages.

Uploaded by

馮立忻
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views

01 Introduction To C Programming Language

C was developed in the early 1970s at Bell Labs by Ken Thompson and Dennis Ritchie as a general-purpose programming language for writing system software. It was designed to be compiled using a minimal compiler for the UNIX operating system. By the early 1980s, C had become widely adopted for application software and remains one of the most widely used programming languages.

Uploaded by

馮立忻
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

!

"#$%&"'()
*+$&,-%#$.,+'$,'/'
0&,1&233.+1'!2+1%21"
!"#$%&'(#)*'+,
-./01)2-34
Origins of C

• C is a by-product of UNIX, developed


at Bell Laboratories by Ken Thompson,
Dennis Ritchie, and others.
• Thompson designed a small language
named B.
• B was based on BCPL, a systems
Ken Thompson Dennis Ritchie
programming language developed in (1943- ) (1941-2011)
the mid-1960s.

2
Origins of C (cont.)
• By 1971, Ritchie began to develop
an extended version of B.
• He called his language NB (“New
B”) at first.
• As the language began to diverge
more from B, he changed its name
to C.
• The language was stable enough
by 1973 that UNIX could be
rewritten in C.

3
Standardization of C
• K&R C
• The C Programming Language (1978) (written by
Kernighan and Ritchie)
• De facto standard
ISO/IEC Documents
• C89/C90
ISO/IEC 9899:1990
• ANSI standard X3.159-1989 ISO/IEC 9899:1990/Amd 1:1995
ISO/IEC 9899:1990/Cor 1:1994
Brian Kernighan
• ISO/IEC 9899:1990 ISO/IEC 9899:1990/Cor 2:1996
(1942- )
ISO/IEC 9899:1999
• C99 ISO/IEC 9899:1999/Cor 1:2001
ISO/IEC 9899:1999/Cor 2:2004
• C11 Features taught in this course ISO/IEC 9899:1999/Cor 3:2007
are introduced/defined in C99.
ISO/IEC 9899:2011
• C18 ISO/IEC 9899:2011/Cor 1:2012
ISO/IEC 9899:2018

4
C-Based Languages

• C++ includes all the features of C, but adds classes


and other features to support object-oriented
programming.
• Java is based on C++ and therefore inherits many C
features.
• C# is a more recent language derived from C++ and
Java.
• Perl has adopted many of the features of C.
• Carbon is developed by Google for possible
successor to C++.
5
Properties of C

• Low-level
• Small
• Permissive

6
Strengths of C
• Efficiency (low-level)
• Flexibility (small and permissive)
• C imposes very few restrictions on the use of its features.
• Integration with UNIX
• Portability
• C compilers are small and easily written.
• Power
• C has large collection of data types and operators.
• Standard library

7
Weaknesses of C

• Programs can be error-prone.


• Programming mistakes that would be caught in many other
languages cannot be detected by a C compiler.
• Programs can be difficult to understand.
• Programmers who are too clever for their own good can
make programs almost impossible to understand.
• Programs can be difficult to modify.
• Large programs written in C can be hard to change if they
haven’t been designed with maintenance in mind.

8
Effective Use of C

• Learn how to avoid pitfalls.


• Use software tools (lint/splint/cppcheck,
debuggers) to make programs more reliable.
• Take advantage of existing code libraries.
• Adopt a sensible set of coding conventions.
• Avoid “tricks” and overly complex code.
• Stick to the standard.

9
If you are bored with learning basic C skills…
Take a look at the
IOCCC website to see
how obfuscating C can
be!

10
Source:http://www.ioccc.org/1986/holloway/holloway.c

IOCCC 1986/holloway
It just prints “Hello, world!”

11
They both print out the p value.

Source:http://www.ioccc.org/1989/roemer.c
Source:http://www.ioccc.org/1988/westley.c

12
IOCCC 1998/banks
It is a flight simulator in
1536 bytes! (X11 needed)

Source:http://www.ioccc.org/1998/banks.c

13
Source:https://www.tiobe.com/tiobe-index/

Does it deserve to learn C?

14
Source:https://www.tiobe.com/tiobe-index/

Does it deserve to learn C? (cont.)

15

You might also like