What Is Object-Oriented Programming?

Total Page:16

File Type:pdf, Size:1020Kb

What Is Object-Oriented Programming? What is Object-Oriented Programming9 Bjmne StMStNp,AT&T Bell Laboratories Ohjedenkntedhas ot all programminglanguagescan duce C++and partly because C++is one of be object-oriented. Yet, claims the few languages that supports data ah become a buzzword have been made that APL, Ada, straction, object-oriented programming, that implies “good” Clu, C++,Iaops, and Smalltalk are object- and traditional programming techniques. proghmming But oriented languages. I have heard discus- I do not cover issues of concurrency and sions of object-oriented design in C, Pas- hardware support for specific,higher level when it comes to cal, Modula-2, and Chili. Could there language constructs. really supporting this somewhere be proponents of object- oriented programming in Fortran and Programming paradigms pardighm, not all Cobol? I think there must be. Object-oriented programming is a tech- lameesare equal. “Object-oriented” has become a high- nique - a paradigm for writing “good” tech synonym for “good.” Articles in the programs for a set of problems. If the term trade presscontain arguments that appear “object-oriented language” means any- to boil down to syllogisms like: thing, it must mean a language that has Ada is good; object-oriented is good; mechanisms that support the object- thert$oore, Ada is object+niated. oriented style of programming well. There is an important distinction here: This article presents my view ofwhat ob ject-oriented means in the context of a A language suppurtsa programming style if it provides facilities that make it con- general-purpose programming language. venient (reasonably easy, safe, and efi- I present examples in C++,partly to intre cient) to use that style. A language does not support a technique if it takes excep An earlier version of this article appeared in /kr.Fmt tional effort or skill to write such pro- Etrmpnii G7$ on O~Prl-(~i~/k~~rntnr,lR.Spnnger- Verlag. NewYork. 1987.p~.51-70. grams; in that case, the language merely 10 0740-7459/88/05OO/OO10/$01 .OO 01988 IEEE IEEE Software wrcilhc prograinmcrs to use the techniqiie. that has found itsway into the compiler or ' Procedul-al programming uses frrnc- For examplc,you can wire structured pro- the literature. tions tv ci-catc oi-dcr in a maze of alp grains in Fortr;in and type-sccurc pro- , rithms. grams in C, and yo~ican use data ahstrac- Procedural. The original - arid pi-ob 1 tioii in Moclul>tZ, but it is iinnecessarily ably still the most cvnirnoii - program- Data hiding. Over the years, the empha- hard to do so because those languages do rning paradigm is: sis in the progi-am design has shifted from not .support those techniques. , procedure design to data organization. Dmdr rohirh prowilurrs you want: ILW lhr ~ Among ot~ici-things, this reflects an in- Support for a pidigin conics not only Imt iilgonlhms ym cnn,/ind. in the obvious foi-in of language facilities crc'ae in prograni size. '4set ofrelated pre that let you use the paradigm directly, bur The foC1l.S is on proccdnrc design -the ~ cedures and the data they manipulate is also in the niorc subtle forms of compilc- algorichtn needed to pelform the desired often called ii ~notlule.The programming tiin<=aiid runtime checks foi- uniiiten- computation. Iaiguages support this par- pal-adigniis: adigm with facilities for passing arguments tional deviations f'rom the paradigm. Type Zlrridr ~i~hi~hmoduIr.rycnL w(m~;pn?lzlion to fnnctions and retLlrningvalues checking, ambiguity detection, and run- theprop-(on ,si) thnt dntn is hiddm in functions. The literature about this para- time checks are an examples of linguistic 1 moduh. support for paradigms. Extralinguistic digin is filled with discussions of how to This paradigm is known the data-hid- facilities such as standard librarics and as ing principle. U%en procedures do not pi-ograinrningeinironments can also prw need to be grouped with related data, the \idr significant support for paradigms. A languee does not procedural style suffices. In fact, the tech- One language is not nccessarily better sumta fechique if niques for designing good procedures are than another because it a feature the has still applied, now to each procedure in a other does not - therc are many ex- it takes exceptional module. amples to the contrary. The impormiit emrt or skill to write The most coninion example ofdata hid- issue is not how many features a language such proglams. ing is a definition of :I stack module. A has, but that the features it docs have are good solution requires sufficient to support the desired program- a user interface for the stack (for ex- ming styles in the desired application pass arguments, how to distinguish differ- ample, thefLinctionspustl() and pop()), areas. Specifically, it is important that: ent kinds ofargumcnts and different kinds that the stack representation (for ex- of functions (procedures, routines, mac- All features are cleanly and elegantly ample, a vector of elements) can be ros, etc.),and so on. integrated into the language. accessed only through this user interface, Fortran is the original procedut al lan- It is possible to cornhilie features to and guage; Algold0,Algol-68, C, and Pascal are achieve solutions that would have other- that the stack is initialized before its later inventions in the same tradition. wise required extra, separate features. first use. An example of good procedural style is a There arc as few spurious arid special- A plausibly external interface for astack square-root function. Given an argument, pirposc features as possible. module is the function neatly produces a result. To Implementing a feature does not im- do so, it performs a well-understood math- ,(I declai-ation of tlic inteifare of module pose significant overhead on programs ematical computation. // stackol characters that do not require it. chai-pop(): A user need only know about the lan- void push (char): guage subset used explicitly to write a pro- double sqrt(doublc arg) const sr-nck-cife = 100; gram. I // the rode for calcdating a squarv 1-oot Assuming this interface is found in a file The last two principles can be suni- I called stark.h, the intemalscan bedefined marized as "what you don't know won't like this: hurt you." If. there are any doubts about void some-function () I #include "5utk.h" the usefulness ofa feature, it is better left double root2 = sqrt (2); static charv[stack-siie]: // "static" means out. It is much easier to add a feature to a // ... // local to this language than to remove or modifv one I // file/rnodule May 1988 11 static char* p = v; // the stack is initially a type-manager module. Ifyouwanted two fined type.* The programming paradigm // empty stacks, you would define a stack-manager becomes: char pop() module with an interface like this: I Decide which types you want; plovide afull // check for underflow and pop // stack-id is a type; no details about set ofoperationsfor each type. I // stacks or stackjds are known here: void push (char c) class stack-id; When there isnoneedformore thatone I // make a stack and return its identifier: object of a type, the data-hiding program- // check for overflow and push stack-id create-stack(int size); ming style using modules suffices. Arith- I // call when stack is no longer needed: metic types such as rational and complex It is quite feasible to change this stack destroy-stack(stack-id); void push(stack-id, char); numbers are common examples of user- representation to a linked list. The user char pop(stack-id); defined types: does not have access to the representation This is certainly a great improvement class complex 1 anyway (because v and p were declared double re, im; static - that is, local to the file or module over the traditional unstructured mess, public: in which theyweredeclared). Such astack but "types" implemented this way are complex(doub1e r, double i) { re=r; im=i; 1 can be used like this: clearly very different from the types built // float->complex conversion: into a language. complex(doub1e r) { re=r; im=O; 1 #include "stack.h" In most important aspects, a type friend complex operator+ void some-function() (complex, complex); I created through a module mechanism is // binary minus: chart= pop(push('c')); different from a built-in type and enjoys in- friend complex operator- if (c != 'c') error("impossib1e"); ferior support: Each type-manager mod- (complex, complex); I ule must define a separate mechanism for // unary minus: friend complex operator-(complex) ; creatingvariables of its type, there is noes As originallydefined, Pascal doesn't pro- friend complex operatort vide satisfactory facilities for such group tablished norm forassigningobject identi- (complex, complex); ing: The only way to hide a name from the fiers, a variable of such a type has no name friend complex operator/ (complex, complex); rest of the program is to make it local to a known to the compiler or programming environment, and such variables do not // ... procedure. This leads to strange proce- I dure nestings and overreliance on global obey the usual scope and argument-pass data. ing rules. The declaration of the complex class Cfaressomewhatbetter.Asshownin the For example: (the userdefined type) specifiesthe repre- example, you can define a module by sentation ofacomplexnumberand theset void f() of operations on a complex number. The grouping related function and data defini- I tions in a single source file. The program- stack-idsl; representation is @'vu& that is, re and im mer can then control which names are stack-id s2; are accessible only to the functions seen by the rest of the program (a name specified in the declaration of class com- SI = create-stack(200); plex.
Recommended publications
  • BUGS Code for Item Response Theory
    JSS Journal of Statistical Software August 2010, Volume 36, Code Snippet 1. http://www.jstatsoft.org/ BUGS Code for Item Response Theory S. McKay Curtis University of Washington Abstract I present BUGS code to fit common models from item response theory (IRT), such as the two parameter logistic model, three parameter logisitic model, graded response model, generalized partial credit model, testlet model, and generalized testlet models. I demonstrate how the code in this article can easily be extended to fit more complicated IRT models, when the data at hand require a more sophisticated approach. Specifically, I describe modifications to the BUGS code that accommodate longitudinal item response data. Keywords: education, psychometrics, latent variable model, measurement model, Bayesian inference, Markov chain Monte Carlo, longitudinal data. 1. Introduction In this paper, I present BUGS (Gilks, Thomas, and Spiegelhalter 1994) code to fit several models from item response theory (IRT). Several different software packages are available for fitting IRT models. These programs include packages from Scientific Software International (du Toit 2003), such as PARSCALE (Muraki and Bock 2005), BILOG-MG (Zimowski, Mu- raki, Mislevy, and Bock 2005), MULTILOG (Thissen, Chen, and Bock 2003), and TESTFACT (Wood, Wilson, Gibbons, Schilling, Muraki, and Bock 2003). The Comprehensive R Archive Network (CRAN) task view \Psychometric Models and Methods" (Mair and Hatzinger 2010) contains a description of many different R packages that can be used to fit IRT models in the R computing environment (R Development Core Team 2010). Among these R packages are ltm (Rizopoulos 2006) and gpcm (Johnson 2007), which contain several functions to fit IRT models using marginal maximum likelihood methods, and eRm (Mair and Hatzinger 2007), which contains functions to fit several variations of the Rasch model (Fischer and Molenaar 1995).
    [Show full text]
  • A Quick Reference to C Programming Language
    A Quick Reference to C Programming Language Structure of a C Program #include(stdio.h) /* include IO library */ #include... /* include other files */ #define.. /* define constants */ /* Declare global variables*/) (variable type)(variable list); /* Define program functions */ (type returned)(function name)(parameter list) (declaration of parameter types) { (declaration of local variables); (body of function code); } /* Define main function*/ main ((optional argc and argv arguments)) (optional declaration parameters) { (declaration of local variables); (body of main function code); } Comments Format: /*(body of comment) */ Example: /*This is a comment in C*/ Constant Declarations Format: #define(constant name)(constant value) Example: #define MAXIMUM 1000 Type Definitions Format: typedef(datatype)(symbolic name); Example: typedef int KILOGRAMS; Variables Declarations: Format: (variable type)(name 1)(name 2),...; Example: int firstnum, secondnum; char alpha; int firstarray[10]; int doublearray[2][5]; char firststring[1O]; Initializing: Format: (variable type)(name)=(value); Example: int firstnum=5; Assignments: Format: (name)=(value); Example: firstnum=5; Alpha='a'; Unions Declarations: Format: union(tag) {(type)(member name); (type)(member name); ... }(variable name); Example: union demotagname {int a; float b; }demovarname; Assignment: Format: (tag).(member name)=(value); demovarname.a=1; demovarname.b=4.6; Structures Declarations: Format: struct(tag) {(type)(variable); (type)(variable); ... }(variable list); Example: struct student {int
    [Show full text]
  • Lecture 2: Introduction to C Programming Language [email protected]
    CSCI-UA 201 Joanna Klukowska Lecture 2: Introduction to C Programming Language [email protected] Lecture 2: Introduction to C Programming Language Notes include some materials provided by Andrew Case, Jinyang Li, Mohamed Zahran, and the textbooks. Reading materials Chapters 1-6 in The C Programming Language, by B.W. Kernighan and Dennis M. Ritchie Section 1.2 and Aside on page 4 in Computer Systems, A Programmer’s Perspective by R.E. Bryant and D.R. O’Hallaron Contents 1 Intro to C and Unix/Linux 3 1.1 Why C?............................................................3 1.2 C vs. Java...........................................................3 1.3 Code Development Process (Not Only in C).........................................4 1.4 Basic Unix Commands....................................................4 2 First C Program and Stages of Compilation 6 2.1 Writing and running hello world in C.............................................6 2.2 Hello world line by line....................................................7 2.3 What really happens when we compile a program?.....................................8 3 Basics of C 9 3.1 Data types (primitive types)..................................................9 3.2 Using printf to print different data types.........................................9 3.3 Control flow.......................................................... 10 3.4 Functions........................................................... 11 3.5 Variable scope........................................................ 12 3.6 Header files.........................................................
    [Show full text]
  • Comparative Studies of Programming Languages; Course Lecture Notes
    Comparative Studies of Programming Languages, COMP6411 Lecture Notes, Revision 1.9 Joey Paquet Serguei A. Mokhov (Eds.) August 5, 2010 arXiv:1007.2123v6 [cs.PL] 4 Aug 2010 2 Preface Lecture notes for the Comparative Studies of Programming Languages course, COMP6411, taught at the Department of Computer Science and Software Engineering, Faculty of Engineering and Computer Science, Concordia University, Montreal, QC, Canada. These notes include a compiled book of primarily related articles from the Wikipedia, the Free Encyclopedia [24], as well as Comparative Programming Languages book [7] and other resources, including our own. The original notes were compiled by Dr. Paquet [14] 3 4 Contents 1 Brief History and Genealogy of Programming Languages 7 1.1 Introduction . 7 1.1.1 Subreferences . 7 1.2 History . 7 1.2.1 Pre-computer era . 7 1.2.2 Subreferences . 8 1.2.3 Early computer era . 8 1.2.4 Subreferences . 8 1.2.5 Modern/Structured programming languages . 9 1.3 References . 19 2 Programming Paradigms 21 2.1 Introduction . 21 2.2 History . 21 2.2.1 Low-level: binary, assembly . 21 2.2.2 Procedural programming . 22 2.2.3 Object-oriented programming . 23 2.2.4 Declarative programming . 27 3 Program Evaluation 33 3.1 Program analysis and translation phases . 33 3.1.1 Front end . 33 3.1.2 Back end . 34 3.2 Compilation vs. interpretation . 34 3.2.1 Compilation . 34 3.2.2 Interpretation . 36 3.2.3 Subreferences . 37 3.3 Type System . 38 3.3.1 Type checking . 38 3.4 Memory management .
    [Show full text]
  • A Tutorial Introduction to the Language B
    A TUTORIAL INTRODUCTION TO THE LANGUAGE B B. W. Kernighan Bell Laboratories Murray Hill, New Jersey 1. Introduction B is a new computer language designed and implemented at Murray Hill. It runs and is actively supported and documented on the H6070 TSS system at Murray Hill. B is particularly suited for non-numeric computations, typified by system programming. These usually involve many complex logical decisions, computations on integers and fields of words, especially charac- ters and bit strings, and no floating point. B programs for such operations are substantially easier to write and understand than GMAP programs. The generated code is quite good. Implementation of simple TSS subsystems is an especially good use for B. B is reminiscent of BCPL [2] , for those who can remember. The original design and implementation are the work of K. L. Thompson and D. M. Ritchie; their original 6070 version has been substantially improved by S. C. Johnson, who also wrote the runtime library. This memo is a tutorial to make learning B as painless as possible. Most of the features of the language are mentioned in passing, but only the most important are stressed. Users who would like the full story should consult A User’s Reference to B on MH-TSS, by S. C. Johnson [1], which should be read for details any- way. We will assume that the user is familiar with the mysteries of TSS, such as creating files, text editing, and the like, and has programmed in some language before. Throughout, the symbolism (->n) implies that a topic will be expanded upon in section n of this manual.
    [Show full text]
  • Command $Line; Done
    http://xkcd.com/208/ >0 TGCAGGTATATCTATTAGCAGGTTTAATTTTGCCTGCACTTGGTTGGGTACATTATTTTAAGTGTATTTGACAAG >1 TGCAGGTTGTTGTTACTCAGGTCCAGTTCTCTGAGACTGGAGGACTGGGAGCTGAGAACTGAGGACAGAGCTTCA >2 TGCAGGGCCGGTCCAAGGCTGCATGAGGCCTGGGGCAGAATCTGACCTAGGGGCCCCTCTTGCTGCTAAAACCAT >3 TGCAGGATCTGCTGCACCATTAACCAGACAGAAATGGCAGTTTTATACAAGTTATTATTCTAATTCAATAGCTGA >4 TGCAGGGGTCAAATACAGCTGTCAAAGCCAGACTTTGAGCACTGCTAGCTGGCTGCAACACCTGCACTTAACCTC cat seqs.fa PIPE grep ACGT TGCAGGTATATCTATTAGCAGGTTTAATTTTGCCTGCACTTGGTTGGGTACATTATTTTAAGTGTATTTGACAAG >1 TGCAGGTTGTTGTTACTCAGGTCCAGTTCTCTGAGACTGGAGGACTGGGAGCTGAGAACTGAGGACAGAGCTTCA >2 TGCAGGGCCGGTCCAAGGCTGCATGAGGCCTGGGGCAGAATCTGACCTAGGGGCCCCTCTTGCTGCTAAAACCAT >3 TGCAGGATCTGCTGCACCATTAACCAGACAGAAATGGCAGTTTTATACAAGTTATTATTCTAATTCAATAGCTGA >4 TGCAGGGGTCAAATACAGCTGTCAAAGCCAGACTTTGAGCACTGCTAGCTGGCTGCAACACCTGCACTTAACCTC cat seqs.fa Does PIPE “>0” grep ACGT contain “ACGT”? Yes? No? Output NULL >1 TGCAGGTTGTTGTTACTCAGGTCCAGTTCTCTGAGACTGGAGGACTGGGAGCTGAGAACTGAGGACAGAGCTTCA >2 TGCAGGGCCGGTCCAAGGCTGCATGAGGCCTGGGGCAGAATCTGACCTAGGGGCCCCTCTTGCTGCTAAAACCAT >3 TGCAGGATCTGCTGCACCATTAACCAGACAGAAATGGCAGTTTTATACAAGTTATTATTCTAATTCAATAGCTGA >4 TGCAGGGGTCAAATACAGCTGTCAAAGCCAGACTTTGAGCACTGCTAGCTGGCTGCAACACCTGCACTTAACCTC cat seqs.fa Does PIPE “TGCAGGTATATCTATTAGCAGGTTTAATTTTGCCTGCACTTG...G” grep ACGT contain “ACGT”? Yes? No? Output NULL TGCAGGTTGTTGTTACTCAGGTCCAGTTCTCTGAGACTGGAGGACTGGGAGCTGAGAACTGAGGACAGAGCTTCA >2 TGCAGGGCCGGTCCAAGGCTGCATGAGGCCTGGGGCAGAATCTGACCTAGGGGCCCCTCTTGCTGCTAAAACCAT >3 TGCAGGATCTGCTGCACCATTAACCAGACAGAAATGGCAGTTTTATACAAGTTATTATTCTAATTCAATAGCTGA
    [Show full text]
  • The C Programming Language
    The C programming Language The C programming Language By Brian W. Kernighan and Dennis M. Ritchie. Published by Prentice-Hall in 1988 ISBN 0-13-110362-8 (paperback) ISBN 0-13-110370-9 Contents ● Preface ● Preface to the first edition ● Introduction 1. Chapter 1: A Tutorial Introduction 1. Getting Started 2. Variables and Arithmetic Expressions 3. The for statement 4. Symbolic Constants 5. Character Input and Output 1. File Copying 2. Character Counting 3. Line Counting 4. Word Counting 6. Arrays 7. Functions 8. Arguments - Call by Value 9. Character Arrays 10. External Variables and Scope 2. Chapter 2: Types, Operators and Expressions 1. Variable Names 2. Data Types and Sizes 3. Constants 4. Declarations http://freebooks.by.ru/view/CProgrammingLanguage/kandr.html (1 of 5) [5/15/2002 10:12:59 PM] The C programming Language 5. Arithmetic Operators 6. Relational and Logical Operators 7. Type Conversions 8. Increment and Decrement Operators 9. Bitwise Operators 10. Assignment Operators and Expressions 11. Conditional Expressions 12. Precedence and Order of Evaluation 3. Chapter 3: Control Flow 1. Statements and Blocks 2. If-Else 3. Else-If 4. Switch 5. Loops - While and For 6. Loops - Do-While 7. Break and Continue 8. Goto and labels 4. Chapter 4: Functions and Program Structure 1. Basics of Functions 2. Functions Returning Non-integers 3. External Variables 4. Scope Rules 5. Header Files 6. Static Variables 7. Register Variables 8. Block Structure 9. Initialization 10. Recursion 11. The C Preprocessor 1. File Inclusion 2. Macro Substitution 3. Conditional Inclusion 5. Chapter 5: Pointers and Arrays 1.
    [Show full text]
  • R Programming for Data Science
    R Programming for Data Science Roger D. Peng This book is for sale at http://leanpub.com/rprogramming This version was published on 2015-07-20 This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do. ©2014 - 2015 Roger D. Peng Also By Roger D. Peng Exploratory Data Analysis with R Contents Preface ............................................... 1 History and Overview of R .................................... 4 What is R? ............................................ 4 What is S? ............................................ 4 The S Philosophy ........................................ 5 Back to R ............................................ 5 Basic Features of R ....................................... 6 Free Software .......................................... 6 Design of the R System ..................................... 7 Limitations of R ......................................... 8 R Resources ........................................... 9 Getting Started with R ...................................... 11 Installation ............................................ 11 Getting started with the R interface .............................. 11 R Nuts and Bolts .......................................... 12 Entering Input .......................................... 12 Evaluation ...........................................
    [Show full text]
  • Winbugs for Beginners
    WinBUGS for Beginners Gabriela Espino-Hernandez Department of Statistics UBC July 2010 “A knowledge of Bayesian statistics is assumed…” The content of this presentation is mainly based on WinBUGS manual Introduction BUGS 1: “Bayesian inference Using Gibbs Sampling” Project for Bayesian analysis using MCMC methods It is not being further developed WinBUGS 1,2 Stable version Run directly from R and other programs OpenBUGS 3 Currently experimental Run directly from R and other programs Running under Linux as LinBUGS 1 MRC Biostatistics Unit Cambridge, 2 Imperial College School of Medicine at St Mary's, London 3 University of Helsinki, Finland WinBUGS Freely distributed http://www.mrc-bsu.cam.ac.uk/bugs/welcome.shtml Key for unrestricted use http://www.mrc-bsu.cam.ac.uk/bugs/winbugs/WinBUGS14_immortality_key.txt WinBUGS installation also contains: Extensive user manual Examples Control analysis using: Standard windows interface DoodleBUGS: Graphical representation of model A closed form for the posterior distribution is not needed Conditional independence is assumed Improper priors are not allowed Inputs Model code Specify data distributions Specify parameter distributions (priors) Data List / rectangular format Initial values for parameters Load / generate Model specification model { statements to describe model in BUGS language } Multiple statements in a single line or one statement over several lines Comment line is followed by # Types of nodes 1. Stochastic Variables that are given a distribution 2. Deterministic
    [Show full text]
  • Unix Commands January 2003 Unix
    Unix Commands Unix January 2003 This quick reference lists commands, including a syntax diagram 2. Commands and brief description. […] indicates an optional part of the 2.1. Command-line Special Characters command. For more detail, use: Quotes and Escape man command Join Words "…" Use man tcsh for the command language. Suppress Filename, Variable Substitution '…' Escape Character \ 1. Files Separation, Continuation 1.1. Filename Substitution Command Separation ; Wild Cards ? * Command-Line Continuation (at end of line) \ Character Class (c is any single character) [c…] 2.2. I/O Redirection and Pipes Range [c-c] Home Directory ~ Standard Output > Home Directory of Another User ~user (overwrite if exists) >! List Files in Current Directory ls [-l] Appending to Standard Output >> List Hidden Files ls -[l]a Standard Input < Standard Error and Output >& 1.2. File Manipulation Standard Error Separately Display File Contents cat filename ( command > output ) >& errorfile Copy cp source destination Pipes/ Pipelines command | filter [ | filter] Move (Rename) mv oldname newname Filters Remove (Delete) rm filename Word/Line Count wc [-l] Create or Modify file pico filename Last n Lines tail [-n] Sort lines sort [-n] 1.3. File Properties Multicolumn Output pr -t Seeing Permissions filename ls -l List Spelling Errors ispell Changing Permissions chmod nnn filename chmod c=p…[,c=p…] filename 2.3. Searching with grep n, a digit from 0 to 7, sets the access level for the user grep Command grep "pattern" filename (owner), group, and others (public), respectively. c is one of: command | grep "pattern" u–user; g–group, o–others, or a–all. p is one of: r–read Search Patterns access, w–write access, or x–execute access.
    [Show full text]
  • C Programming Tutorial
    C Programming Tutorial C PROGRAMMING TUTORIAL Simply Easy Learning by tutorialspoint.com tutorialspoint.com i COPYRIGHT & DISCLAIMER NOTICE All the content and graphics on this tutorial are the property of tutorialspoint.com. Any content from tutorialspoint.com or this tutorial may not be redistributed or reproduced in any way, shape, or form without the written permission of tutorialspoint.com. Failure to do so is a violation of copyright laws. This tutorial may contain inaccuracies or errors and tutorialspoint provides no guarantee regarding the accuracy of the site or its contents including this tutorial. If you discover that the tutorialspoint.com site or this tutorial content contains some errors, please contact us at [email protected] ii Table of Contents C Language Overview .............................................................. 1 Facts about C ............................................................................................... 1 Why to use C ? ............................................................................................. 2 C Programs .................................................................................................. 2 C Environment Setup ............................................................... 3 Text Editor ................................................................................................... 3 The C Compiler ............................................................................................ 3 Installation on Unix/Linux ............................................................................
    [Show full text]
  • A Modular Structured Approach Using C++ © Kenneth Leroy Busbee
    Programming Fundamentals -A Modular Structured Approach using C++ © Kenneth Leroy Busbee This work is licensed under a Creative Commons-ShareAlike 4.0 International License Original source: Multimedia Educational Resource for Learning and Online Teaching http://www.merlot.org/merlot/viewMaterial.htm?id=515164 Contents Preface .............................................................................................................................1 Orientation and Syllabus ...............................................................................................2 Chapter 1 Introduction to Programming ....................................................................4 1.1 Systems Development Life Cycle .....................................................................................4 1.1.1 Discussion ................................................................................................................4 1.1.2 Definitions ...............................................................................................................5 1.2 Bloodshed Dev-C++ 5 Compiler/IDE ................................................................................6 1.2.1 Introduction ............................................................................................................6 1.2.2 Bloodshed Dev-C++ 5 compiler/IDE .....................................................................6 1.2.3 Preparation before Installation ............................................................................7 1.2.3.1 Creating the
    [Show full text]