SlideShare une entreprise Scribd logo
1  sur  10
Turner 1
David Turner
Professor Powel
March 13, 2013
A Brief Discussion On The C Programming Language
Figure 1: Dennis Ritchie, Creator of C
(C Programming Language History)
Abstract
This report has been prepared to give a broad, underlying understanding of the C
programming language, its development, and how it relates to other programming languages.
The report is divided into a series of sections that describe the historical elements that led to the
creation of C on a strictly technical level, the conventional success and practice, and the ranging
potential for additional development and growth. This report expects a rudimentary
understanding in computer logic and design, though is not explicitly required.
Introduction
C: a simple, streamlined, systems-focused programming language concocted in 1972 by
Dennis Ritchie (Figure 1), a systems engineer at Bells laboratories, has since laid the
groundwork for nearly all high-level programming.While C was originally intended for the Unix
Operating system, dispersion, and the utter success of the company led to more contemporary,
general uses by other platforms. C‟s tremendous power, flexibility, and high level of
Turner 2
communicative portability have made it a very effective middle-level language, incorporating the
syntactical grace of higher level hierarchy along with the control of hardware specific data. It is
now used for a variety of different purposes (Dennis).
This report further explains:
The development and historical components of C‟s creation.
The core reasons for its financial success and popular usage.
The advantages of C programming and the list of capabilities that differ from
other established languages.
The basic, generic structure of C programming
The evolution and transcendence into other object oriented languages.
Ancestral Languages of C
The core principles and groundwork can be drawn from earlier predecessors, such as
Combined Programming Language (CPL), Basic Combined Programming language (BCPL), and
B (C‟s most recent ancestor, hence the sequential coincidence in the naming of C). These earlier
languages had similar, though less accomplished goals as C, which included low-level control
down to the single most bit and streamlined functionality so that composing programs was quick
and efficient. However, problems including size, run time, and OS specific coding -particularly
BCPL- keep them from reaching the heights of C (Dennis).
Reasons for Creating C
BCPL and B are small, deterministic, uniformly consistent languages written almost
primarily for the operating system. They are generally parallel with C in terms of logic and
Turner 3
design, though B is restricted to a more uniform, skeletal structure that promotes regularity and
simplicity over complex usage. Large libraries of complex functions and varying features of an
instruction set typically result in larger CPU times and higher memory costs. While B was
effective in many regards, clumsy, almost inexcusable problems related to its library procedures
and forms of string manipulation made for an ineffective, cumbersome process (Dennis).
C, originally a singularly purposed creation: a quick, efficient means of compiling the
Unix operating system, slowly became the language of choice, even replacing several well-
known languages such as PL/I and ALGL. Ultimately, it became necessary to create an
undeviating standard through the American National Standards Institute (ANSI) in 1990
(Introduction to C).
The Mainstream Popularity of C
While there are a number of programming languages designed for an assortment of
different purposes, some broad, while others more specific and simplified, C still remains a very
popular language to remain cozy in. It is a healthy, well-built language used for both systems
programming and portable, applications software. In fact, many other languages, such as Basic,
Pascal, and Fortran, have their compilers written entirely in C (Introduction to C).
The widespread popularity of C comes from:
Itsportability (meaning code is readable and applicable across platforms). The
low-level design of C allows finite control over small streams of data, making it a
go-to language when writing a complier or interpreter for another language.
Turner 4
Its speed and efficiency. Because of its similarity to assembly language, its wide
range of data types, and the regimented nature of its operators, the jump from
assembly to machine code is a quicker, more congruent operation than other
languages.
Its simplicity and ease of mastery. It provides a solid foundation, both
syntactically and in terms of understanding the operations on a more hardware-
intensive level, to other languages.
C was originally established to assist in the development of systems software, to work
with large, overarching programs that made up the operating system to build larger and better
tools, but never to the point where it was bogged down by needless boil code (The C
Programming Language).
However, because of its rapid speed, close in terms to code written in assembly, and its
ease of portability across platforms, it has become a general all-purpose language for all kinds of
applications. Such examples are:
Areas of practicality with C
*Embedded systems *Systems Programming *Artificial Intelligence
*Industrial Automation *Computer Graphics *Space Research
*Image Processing *Game Programming *Many more.
Turner 5
What sets C part from other Languages?
Choice in in programming language comes from the situation in which they are applied,
as each language is geared towards certain objectives over the other, so to describe any one
language as the „superior‟ victor to another is a moot point (The Differences).
The difference from C and many other languages is its similarity to assembly, and the
simplicity in its control structure. C is a form of procedural- typically sequential- programing,
that involves using selected functions to obtain desired results: a quick, instruction based system
that makes reading code slightly more readable. Other more advanced languages such as C++
(simply a superset of C), and Java –built from C- utilize object oriented design, meaning user
defined entities are manipulated by a barrage of methods and key, object specific features. In
other words, programming is revolved around objects rather than actions, data as opposed to pure
logic (The Differences).
Another core difference between varying languages is C‟s ability to manually allocate
and manipulate data with explicit control (a low-level perk that is both incredibly powerful and
potentially dangerous).
So in summary, a fairly effective way to think of C in terms of other languages –albeit
not a completely accurate summation- is the level of control it has over minuet functions and
unrelated hardware specifics, but without the luxury of built in safety hazards and the sense of a
layered, abstract flow of organization that is present in other languages.
Turner 6
The Generic structure of C programming
The C programming language is a simple, action-based language that operates on a small
instruction set to emphasize speed and consistency. It provides low-level access to hardware
specifics and basic language constructs that can be directly translated into assembly language,
which goes to further improve the performance of whatever program is running. C makes
exhaustive use of flow structures and functions, as any procedural language would, which allows
for a more physical, concrete manipulation of data. As stated before, C takes advantage of its low
memory access through memory addresses and the underlying understanding that memory is just
a long sequential array.
C allows subjective use of whitespace in organizing one‟s code, comments to clarify
specific chunks of code and what they mean in context of the program, and providesextensive
libraries of pre-written functions for static use. To signify statements for the program to act on,
the user simply needs to insert a semicolon at the end of a syntactically correct line of code
(Dennis).
A number of other rules and basic implementation have been made universal in much the
same way, making the process of composing programs a much easier task, allowing the user to
focus on the problem rather than dealing with how to effectively communicate with the
computer.
Reasons for this Structure
The ultimate goal of all high-level programming is to reach a form of pseudo-
englishthat‟s as close to real English as possible, without compromising performance. C has
made a very strong step in this direction.
Turner 7
Before the establishment of C,most code was written in some form of assembly, where
each line of code related to a single microprocessor instruction (A simple operation of addition
takes a number of instructions to access registers and modify their values). High level
programming is not held by those restrictions however, as a single instruction in C may represent
many machine-based instructions. The significance of condensing operations and functions into
compact, abbreviated forms reduces the chance of human error, increases efficiency in writing
programs, and creates readable, interpretable lines of finished code (Knowlton).
There are drawbacks to high-level programming however, as with anything else. The
problem with matching multiple instructions to a single line of code is that sometimes there are
operations that the user is unable to perform. However, with assembly, the user is able to
command any operation the computer has the capability of performing. C is a hybrid of the two,
existing somewhere between a robust, hyperactive form of assembly and a watered down,
compact high-level language (Knowlton).
The Evolution and Transcendence of C
Figure 2: Chronological Tree of Computer Programming Languages
Turner 8
(Why Object C is “weird)
The laser-focused, logical pillars that make up the core building blocks of C have
remained consistently true, and that framework has been the inception of languages that have
since come after C. The unspoken, global standard for the syntactical composition of code has
used C as its base point, with its similar scheme in modeling data types and larger abstractions in
the same scheme used by C. However, the similarities of syntax is not the only way in which C
has served the technological field, as some have been entirely modeled after it, such as Java.
Languages such as C++ and Objective-C have since come into existence with the prolific
use and emphasis on object oriented design over sequential, function-based programming. C++
and Objective-Cthough are merely extensions of classical C, but with added tools to allow a
more generic programming template.
The Effects of the C Programming Language
Made obvious by the diagram of Figure 2, there are a ridiculous number of programming
languages to choose from, each with its own purpose, history, and architectural make-up.
However, despite these differences, they are all merely methods of manipulating the actions on
the same environment. So with the creation of C, and its instantaneous spark of intuitive design
and blast of efficiency, the all-encompassing, intertwining chain that ties these languages
together was also pushed forward.
Turner 9
Works Cited
“C Programming Language History.”History of C Programming Language.N.p., n.d.
Web. 13 March 2013
“Introduction to C Programming.”Career Campus.GlobarenaIteknowledgec 2003.
Web. 13 March 2013.
Knowlton, Todd. Introduction to Computer Science Using C++.Boston MA: Course
Technology/Thomson Learning, 2002. Print.
Ritchie, Dennis M. “The Development of the C Language.” Chistory.
Association for Computing Machinery, Inc. Apr. 1993 Web. 13 March 2013.
"The C Programming Language."The C Programming Language.N.p., n.d. Web. 13 Mar. 2013.
“The Differences Between Java, C, And C++.” JAVA FAQ. Programmersheaven.com,
2011. Web. 13 March 2013.
“Why Objective-C is “weird” for the Contemporary Programmers.” Calvins RSS.N.p., n.d. Web.
13 March 2013.
Turner 10

Contenu connexe

Tendances

4 evolution-of-programming-languages
4 evolution-of-programming-languages4 evolution-of-programming-languages
4 evolution-of-programming-languagesRohit Shrivastava
 
Programming language
Programming languageProgramming language
Programming languageShuja Qais
 
C programming slide day 01 uploadd by md abdullah al shakil
C programming slide day 01 uploadd by md abdullah al shakilC programming slide day 01 uploadd by md abdullah al shakil
C programming slide day 01 uploadd by md abdullah al shakilZenith SVG
 
Comparative Study of programming Languages
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming LanguagesIshan Monga
 
Programming languages
Programming languagesProgramming languages
Programming languagesAsmasum
 
Programming languages
Programming languagesProgramming languages
Programming languagesSimon Mui
 
Chapter 5( programming) answer
Chapter 5( programming) answerChapter 5( programming) answer
Chapter 5( programming) answersmkengkilili2011
 
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++jamieayre
 
Doppl development iteration #10
Doppl development   iteration #10Doppl development   iteration #10
Doppl development iteration #10Diego Perini
 
Introduction Programming Languages
Introduction Programming LanguagesIntroduction Programming Languages
Introduction Programming LanguagesManish Kharotia
 
Ch1 language design issue
Ch1 language design issueCh1 language design issue
Ch1 language design issueJigisha Pandya
 
Computer programming programming_langugages
Computer programming programming_langugagesComputer programming programming_langugages
Computer programming programming_langugageseShikshak
 
Programming languages and paradigms
Programming languages and paradigmsProgramming languages and paradigms
Programming languages and paradigmsJohn Paul Hallasgo
 
Programming language
Programming languageProgramming language
Programming languageDhani Ahmad
 

Tendances (20)

4 evolution-of-programming-languages
4 evolution-of-programming-languages4 evolution-of-programming-languages
4 evolution-of-programming-languages
 
Itc chapter # 8
Itc   chapter # 8Itc   chapter # 8
Itc chapter # 8
 
Programming language
Programming languageProgramming language
Programming language
 
C programming slide day 01 uploadd by md abdullah al shakil
C programming slide day 01 uploadd by md abdullah al shakilC programming slide day 01 uploadd by md abdullah al shakil
C programming slide day 01 uploadd by md abdullah al shakil
 
Comparative Study of programming Languages
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming Languages
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Computer
ComputerComputer
Computer
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Chapter 5( programming) answer
Chapter 5( programming) answerChapter 5( programming) answer
Chapter 5( programming) answer
 
Introduction to c
Introduction to  cIntroduction to  c
Introduction to c
 
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Presentation on Programming Languages.
Presentation on Programming Languages.Presentation on Programming Languages.
Presentation on Programming Languages.
 
Doppl development iteration #10
Doppl development   iteration #10Doppl development   iteration #10
Doppl development iteration #10
 
Introduction Programming Languages
Introduction Programming LanguagesIntroduction Programming Languages
Introduction Programming Languages
 
Programming
ProgrammingProgramming
Programming
 
Ch1 language design issue
Ch1 language design issueCh1 language design issue
Ch1 language design issue
 
Computer programming programming_langugages
Computer programming programming_langugagesComputer programming programming_langugages
Computer programming programming_langugages
 
Programming languages and paradigms
Programming languages and paradigmsProgramming languages and paradigms
Programming languages and paradigms
 
Programming language
Programming languageProgramming language
Programming language
 

En vedette

Godbye Dennis
Godbye DennisGodbye Dennis
Godbye Dennissjpapa
 
Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing TechtalkLife and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing TechtalkPersistent Systems Ltd.
 
Summmary of Biography of Dennis Ritchie.
Summmary of Biography of Dennis Ritchie.Summmary of Biography of Dennis Ritchie.
Summmary of Biography of Dennis Ritchie.MAngelica06
 
Tribute to Computing Legend Dennis Ritchie #RIPDennis
Tribute to Computing Legend Dennis Ritchie #RIPDennisTribute to Computing Legend Dennis Ritchie #RIPDennis
Tribute to Computing Legend Dennis Ritchie #RIPDennisBuzzom
 
Dennis m. ritchie
Dennis m. ritchieDennis m. ritchie
Dennis m. ritchie夏 永锋
 
Dennis_Ritchie
Dennis_RitchieDennis_Ritchie
Dennis_Ritchiedimsal
 
Mark zuckerberg ppt
Mark zuckerberg pptMark zuckerberg ppt
Mark zuckerberg pptAnkit Kochar
 
Mark zuckerberg : Founder of facebook
Mark zuckerberg : Founder of facebookMark zuckerberg : Founder of facebook
Mark zuckerberg : Founder of facebookPooja Iyer
 
Presentacion Dia De Muertos
Presentacion Dia De MuertosPresentacion Dia De Muertos
Presentacion Dia De Muertosgloriamoran
 
Dia de los muertos powerpoint
Dia de los muertos powerpointDia de los muertos powerpoint
Dia de los muertos powerpointkayteeb61
 
Dia De Los Muertos - Day of the Dead
Dia De Los Muertos - Day of the DeadDia De Los Muertos - Day of the Dead
Dia De Los Muertos - Day of the DeadBlakeney Armstrong
 
Bill gates presentation
Bill gates presentationBill gates presentation
Bill gates presentationdonmos
 
Presentacion de dia de muertos
Presentacion de dia de muertosPresentacion de dia de muertos
Presentacion de dia de muertosGerman4550
 

En vedette (16)

Godbye Dennis
Godbye DennisGodbye Dennis
Godbye Dennis
 
Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing TechtalkLife and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
 
Summmary of Biography of Dennis Ritchie.
Summmary of Biography of Dennis Ritchie.Summmary of Biography of Dennis Ritchie.
Summmary of Biography of Dennis Ritchie.
 
Tribute to Computing Legend Dennis Ritchie #RIPDennis
Tribute to Computing Legend Dennis Ritchie #RIPDennisTribute to Computing Legend Dennis Ritchie #RIPDennis
Tribute to Computing Legend Dennis Ritchie #RIPDennis
 
Dennis m. ritchie
Dennis m. ritchieDennis m. ritchie
Dennis m. ritchie
 
Dennis_Ritchie
Dennis_RitchieDennis_Ritchie
Dennis_Ritchie
 
Mark zuckerberg ppt
Mark zuckerberg pptMark zuckerberg ppt
Mark zuckerberg ppt
 
Mark zuckerberg : Founder of facebook
Mark zuckerberg : Founder of facebookMark zuckerberg : Founder of facebook
Mark zuckerberg : Founder of facebook
 
Presentacion Dia De Muertos
Presentacion Dia De MuertosPresentacion Dia De Muertos
Presentacion Dia De Muertos
 
Dia de los muertos powerpoint
Dia de los muertos powerpointDia de los muertos powerpoint
Dia de los muertos powerpoint
 
Presentacion día de muertos en méxico
Presentacion día de muertos en méxicoPresentacion día de muertos en méxico
Presentacion día de muertos en méxico
 
Mark Zuckerberg
Mark ZuckerbergMark Zuckerberg
Mark Zuckerberg
 
Dia de Los Muertos
Dia de Los MuertosDia de Los Muertos
Dia de Los Muertos
 
Dia De Los Muertos - Day of the Dead
Dia De Los Muertos - Day of the DeadDia De Los Muertos - Day of the Dead
Dia De Los Muertos - Day of the Dead
 
Bill gates presentation
Bill gates presentationBill gates presentation
Bill gates presentation
 
Presentacion de dia de muertos
Presentacion de dia de muertosPresentacion de dia de muertos
Presentacion de dia de muertos
 

Similaire à D turner techreport

Introduction to C Programming (1).pdf
Introduction to C Programming (1).pdfIntroduction to C Programming (1).pdf
Introduction to C Programming (1).pdfSahidkhatiwada
 
20210417-cppRelevancy-DataStructures.pptx
20210417-cppRelevancy-DataStructures.pptx20210417-cppRelevancy-DataStructures.pptx
20210417-cppRelevancy-DataStructures.pptxSuman Garai
 
C programming presentation for university
C programming presentation for universityC programming presentation for university
C programming presentation for universitySheikh Monirul Hasan
 
Consider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdfConsider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdffasttrackscardecors
 
Why C is Called Structured Programming Language
Why C is Called Structured Programming LanguageWhy C is Called Structured Programming Language
Why C is Called Structured Programming LanguageSinbad Konick
 
Fundamentals of programming and problem solving
Fundamentals of programming and problem solvingFundamentals of programming and problem solving
Fundamentals of programming and problem solvingJustine Dela Serna
 
The Importance of C Language in the Tech Industry.pdf
The Importance of C Language in the Tech Industry.pdfThe Importance of C Language in the Tech Industry.pdf
The Importance of C Language in the Tech Industry.pdfSaniyaSharma28
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming LanguageRamaBoya2
 
C Programming language - introduction
C Programming  language - introduction  C Programming  language - introduction
C Programming language - introduction GopikaS12
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programmingAkshay Ithape
 
C programming introduction
C programming introductionC programming introduction
C programming introductionDucat
 

Similaire à D turner techreport (20)

Introduction to C Programming (1).pdf
Introduction to C Programming (1).pdfIntroduction to C Programming (1).pdf
Introduction to C Programming (1).pdf
 
20210417-cppRelevancy-DataStructures.pptx
20210417-cppRelevancy-DataStructures.pptx20210417-cppRelevancy-DataStructures.pptx
20210417-cppRelevancy-DataStructures.pptx
 
C basic
C basicC basic
C basic
 
What is C.docx
What is C.docxWhat is C.docx
What is C.docx
 
C programming presentation for university
C programming presentation for universityC programming presentation for university
C programming presentation for university
 
Introduction to c
Introduction to cIntroduction to c
Introduction to c
 
Consider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdfConsider the following interrupting system. The active-edge inputs o.pdf
Consider the following interrupting system. The active-edge inputs o.pdf
 
Why C is Called Structured Programming Language
Why C is Called Structured Programming LanguageWhy C is Called Structured Programming Language
Why C is Called Structured Programming Language
 
C Language
C LanguageC Language
C Language
 
Fundamentals of programming and problem solving
Fundamentals of programming and problem solvingFundamentals of programming and problem solving
Fundamentals of programming and problem solving
 
The Importance of C Language in the Tech Industry.pdf
The Importance of C Language in the Tech Industry.pdfThe Importance of C Language in the Tech Industry.pdf
The Importance of C Language in the Tech Industry.pdf
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 
C tutorial
C tutorialC tutorial
C tutorial
 
Introduction to c language
Introduction to c language Introduction to c language
Introduction to c language
 
C Programming language - introduction
C Programming  language - introduction  C Programming  language - introduction
C Programming language - introduction
 
CS3251-_PIC
CS3251-_PICCS3251-_PIC
CS3251-_PIC
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
Introduction to c
Introduction to  cIntroduction to  c
Introduction to c
 
C programming introduction
C programming introductionC programming introduction
C programming introduction
 
C language part 1
C language part  1C language part  1
C language part 1
 

D turner techreport

  • 1. Turner 1 David Turner Professor Powel March 13, 2013 A Brief Discussion On The C Programming Language Figure 1: Dennis Ritchie, Creator of C (C Programming Language History) Abstract This report has been prepared to give a broad, underlying understanding of the C programming language, its development, and how it relates to other programming languages. The report is divided into a series of sections that describe the historical elements that led to the creation of C on a strictly technical level, the conventional success and practice, and the ranging potential for additional development and growth. This report expects a rudimentary understanding in computer logic and design, though is not explicitly required. Introduction C: a simple, streamlined, systems-focused programming language concocted in 1972 by Dennis Ritchie (Figure 1), a systems engineer at Bells laboratories, has since laid the groundwork for nearly all high-level programming.While C was originally intended for the Unix Operating system, dispersion, and the utter success of the company led to more contemporary, general uses by other platforms. C‟s tremendous power, flexibility, and high level of
  • 2. Turner 2 communicative portability have made it a very effective middle-level language, incorporating the syntactical grace of higher level hierarchy along with the control of hardware specific data. It is now used for a variety of different purposes (Dennis). This report further explains: The development and historical components of C‟s creation. The core reasons for its financial success and popular usage. The advantages of C programming and the list of capabilities that differ from other established languages. The basic, generic structure of C programming The evolution and transcendence into other object oriented languages. Ancestral Languages of C The core principles and groundwork can be drawn from earlier predecessors, such as Combined Programming Language (CPL), Basic Combined Programming language (BCPL), and B (C‟s most recent ancestor, hence the sequential coincidence in the naming of C). These earlier languages had similar, though less accomplished goals as C, which included low-level control down to the single most bit and streamlined functionality so that composing programs was quick and efficient. However, problems including size, run time, and OS specific coding -particularly BCPL- keep them from reaching the heights of C (Dennis). Reasons for Creating C BCPL and B are small, deterministic, uniformly consistent languages written almost primarily for the operating system. They are generally parallel with C in terms of logic and
  • 3. Turner 3 design, though B is restricted to a more uniform, skeletal structure that promotes regularity and simplicity over complex usage. Large libraries of complex functions and varying features of an instruction set typically result in larger CPU times and higher memory costs. While B was effective in many regards, clumsy, almost inexcusable problems related to its library procedures and forms of string manipulation made for an ineffective, cumbersome process (Dennis). C, originally a singularly purposed creation: a quick, efficient means of compiling the Unix operating system, slowly became the language of choice, even replacing several well- known languages such as PL/I and ALGL. Ultimately, it became necessary to create an undeviating standard through the American National Standards Institute (ANSI) in 1990 (Introduction to C). The Mainstream Popularity of C While there are a number of programming languages designed for an assortment of different purposes, some broad, while others more specific and simplified, C still remains a very popular language to remain cozy in. It is a healthy, well-built language used for both systems programming and portable, applications software. In fact, many other languages, such as Basic, Pascal, and Fortran, have their compilers written entirely in C (Introduction to C). The widespread popularity of C comes from: Itsportability (meaning code is readable and applicable across platforms). The low-level design of C allows finite control over small streams of data, making it a go-to language when writing a complier or interpreter for another language.
  • 4. Turner 4 Its speed and efficiency. Because of its similarity to assembly language, its wide range of data types, and the regimented nature of its operators, the jump from assembly to machine code is a quicker, more congruent operation than other languages. Its simplicity and ease of mastery. It provides a solid foundation, both syntactically and in terms of understanding the operations on a more hardware- intensive level, to other languages. C was originally established to assist in the development of systems software, to work with large, overarching programs that made up the operating system to build larger and better tools, but never to the point where it was bogged down by needless boil code (The C Programming Language). However, because of its rapid speed, close in terms to code written in assembly, and its ease of portability across platforms, it has become a general all-purpose language for all kinds of applications. Such examples are: Areas of practicality with C *Embedded systems *Systems Programming *Artificial Intelligence *Industrial Automation *Computer Graphics *Space Research *Image Processing *Game Programming *Many more.
  • 5. Turner 5 What sets C part from other Languages? Choice in in programming language comes from the situation in which they are applied, as each language is geared towards certain objectives over the other, so to describe any one language as the „superior‟ victor to another is a moot point (The Differences). The difference from C and many other languages is its similarity to assembly, and the simplicity in its control structure. C is a form of procedural- typically sequential- programing, that involves using selected functions to obtain desired results: a quick, instruction based system that makes reading code slightly more readable. Other more advanced languages such as C++ (simply a superset of C), and Java –built from C- utilize object oriented design, meaning user defined entities are manipulated by a barrage of methods and key, object specific features. In other words, programming is revolved around objects rather than actions, data as opposed to pure logic (The Differences). Another core difference between varying languages is C‟s ability to manually allocate and manipulate data with explicit control (a low-level perk that is both incredibly powerful and potentially dangerous). So in summary, a fairly effective way to think of C in terms of other languages –albeit not a completely accurate summation- is the level of control it has over minuet functions and unrelated hardware specifics, but without the luxury of built in safety hazards and the sense of a layered, abstract flow of organization that is present in other languages.
  • 6. Turner 6 The Generic structure of C programming The C programming language is a simple, action-based language that operates on a small instruction set to emphasize speed and consistency. It provides low-level access to hardware specifics and basic language constructs that can be directly translated into assembly language, which goes to further improve the performance of whatever program is running. C makes exhaustive use of flow structures and functions, as any procedural language would, which allows for a more physical, concrete manipulation of data. As stated before, C takes advantage of its low memory access through memory addresses and the underlying understanding that memory is just a long sequential array. C allows subjective use of whitespace in organizing one‟s code, comments to clarify specific chunks of code and what they mean in context of the program, and providesextensive libraries of pre-written functions for static use. To signify statements for the program to act on, the user simply needs to insert a semicolon at the end of a syntactically correct line of code (Dennis). A number of other rules and basic implementation have been made universal in much the same way, making the process of composing programs a much easier task, allowing the user to focus on the problem rather than dealing with how to effectively communicate with the computer. Reasons for this Structure The ultimate goal of all high-level programming is to reach a form of pseudo- englishthat‟s as close to real English as possible, without compromising performance. C has made a very strong step in this direction.
  • 7. Turner 7 Before the establishment of C,most code was written in some form of assembly, where each line of code related to a single microprocessor instruction (A simple operation of addition takes a number of instructions to access registers and modify their values). High level programming is not held by those restrictions however, as a single instruction in C may represent many machine-based instructions. The significance of condensing operations and functions into compact, abbreviated forms reduces the chance of human error, increases efficiency in writing programs, and creates readable, interpretable lines of finished code (Knowlton). There are drawbacks to high-level programming however, as with anything else. The problem with matching multiple instructions to a single line of code is that sometimes there are operations that the user is unable to perform. However, with assembly, the user is able to command any operation the computer has the capability of performing. C is a hybrid of the two, existing somewhere between a robust, hyperactive form of assembly and a watered down, compact high-level language (Knowlton). The Evolution and Transcendence of C Figure 2: Chronological Tree of Computer Programming Languages
  • 8. Turner 8 (Why Object C is “weird) The laser-focused, logical pillars that make up the core building blocks of C have remained consistently true, and that framework has been the inception of languages that have since come after C. The unspoken, global standard for the syntactical composition of code has used C as its base point, with its similar scheme in modeling data types and larger abstractions in the same scheme used by C. However, the similarities of syntax is not the only way in which C has served the technological field, as some have been entirely modeled after it, such as Java. Languages such as C++ and Objective-C have since come into existence with the prolific use and emphasis on object oriented design over sequential, function-based programming. C++ and Objective-Cthough are merely extensions of classical C, but with added tools to allow a more generic programming template. The Effects of the C Programming Language Made obvious by the diagram of Figure 2, there are a ridiculous number of programming languages to choose from, each with its own purpose, history, and architectural make-up. However, despite these differences, they are all merely methods of manipulating the actions on the same environment. So with the creation of C, and its instantaneous spark of intuitive design and blast of efficiency, the all-encompassing, intertwining chain that ties these languages together was also pushed forward.
  • 9. Turner 9 Works Cited “C Programming Language History.”History of C Programming Language.N.p., n.d. Web. 13 March 2013 “Introduction to C Programming.”Career Campus.GlobarenaIteknowledgec 2003. Web. 13 March 2013. Knowlton, Todd. Introduction to Computer Science Using C++.Boston MA: Course Technology/Thomson Learning, 2002. Print. Ritchie, Dennis M. “The Development of the C Language.” Chistory. Association for Computing Machinery, Inc. Apr. 1993 Web. 13 March 2013. "The C Programming Language."The C Programming Language.N.p., n.d. Web. 13 Mar. 2013. “The Differences Between Java, C, And C++.” JAVA FAQ. Programmersheaven.com, 2011. Web. 13 March 2013. “Why Objective-C is “weird” for the Contemporary Programmers.” Calvins RSS.N.p., n.d. Web. 13 March 2013.