Η γλώσσα C, το πρώτο πρόγραμμα
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Ιστορία της C
Χρονολογίες
 Δημιουργήθηκε από το 1969-1973 μαζί με το λειτουργικό σύστημα Unix
 Αλλαγές έγιναν το 1977-1979 όταν το Unix μεταφερόταν σε διαφορετικές  υπολογιστικές πλατφόρμες
 Στα μέσα του 1980 έγινε αμερικανικό και διεθνές πρότυπο
Γενεαλογία
 Αλγοριθμικές γλώσσες όπως FORTRAN και Algol
 BCPL (Martin Richards, μέσα 1960)
 B (Ken Thompson, 1969)
Απόγονοι
 Objective C
 C++
 Perl, Java
Το πρώτο μου πρόγραμμα
Το παρακάτω πρόγραμμα τυπώνει "hello, world" στην οθόνη.
#include <stdio.h>
main()
{
        printf("hello, world\n");
}
Μπορούμε να το αλλάξουμε για να τυπώσει:
Στοιχεία του προγράμματος
Τα προγράμματα της C αποτελούνται από ορισμένες βασικές τάξεις στοιχείων:
Ορισμός απλών συναρτήσεων
Ασκήσεις
Εξοικείωση με το μεταγλωττιστή και τη διαδικασία προγραμματισμού
-  Να πληκτρολογήσετε, μεταγλωττίσετε και να εκτελέσετε ένα πρόγραμμα
σε C που να τυπώνει "I am learning C"
 -  Πειραματιστείτε αλλάζοντας διάφορα στοιχεία του προγράμματος.
(Το πιθανότερο είναι οι περισσότερες αλλαγές σας να καταλήγουν σε λάθη.)
 -  Φτιάξτε ένα πρόγραμμα το οποίο να τυπώνει με * ένα τετράγωνο
στην οθόνη σαν το παρακάτω:
***************
*             *
*             *
*             *
*             *
*             *
*             *
***************
Για να επαναλαμβανόμενα στοιχεία του τετραγώνου να ορίσετε δύο συναρτήσεις
οι οποίες να τα τυπώνουν και να τις καλέσετε όσες φορές και με τη σειρά
που χρειάζεται.
 
Βιβλιογραφία
- Brian W. Kernighan, Dennis M. Ritchie
Η γλώσσα προγραμματισμού C. σ. 19-23
Δεύτερη έκδοση.
Κλειδάριθμος, 1988.
 - Brian W. Kernighan and Dennis M. Ritchie.
The C Programming Language, pages 5-7.
Prentice-Hall, second edition, 1988.
 
Γενική βιβλιογραφία
- Brian W. Kernighan, Dennis M. Ritchie
Η γλώσσα προγραμματισμού C. σ. 19-23
Δεύτερη έκδοση.
Κλειδάριθμος, 1988.
 
- American National
  Standard for Information Systems --- programming language --- C:
  ANSI X3.159-1989.
Published by the American National Standards Institute, 1430 Broadway, New
  York, New York 10018, December 1989.
(Also ISO/IEC 9899:1990).
 - Samuel P. Harbison
  and Guy L. Steele Jr.
C: A
  Reference Manual.
Prentice-Hall, third edition, 1991.
 - Mark R. Horton.
Portable C Software.
Prentice Hall, 1990.
 - Stephen C. Johnson and
  Brian W. Kernighan.
The programming language b.
Computer Science Technical Report 8, Bell Laboratories, Murray Hill, NJ, USA,
  January 1977.
 - Brian W. Kernighan and
  P. J. Plauger.
The Elements
  of Programming Style.
McGraw-Hill, second edition, 1978.
 - Brian W. Kernighan and
  Dennis M. Ritchie.
The C Programming Language.
Prentice-Hall, first edition, 1978.
 - Brian W. Kernighan.
Why Pascal is not my favorite programming language.
Technical Report 100, Bell Laboratories, Murray Hill, New Jersey 07974, July
  1981.
 - Andrew Koenig.
C Traps and
  Pitfalls.
Addison-Wesley, 1988.
 - Don Libes.
Obfuscated
  C and Other Mysteries.
John Wiley and Sons, 1993.
 - P. J. Plauger.
The Standard C Library.
Prentice Hall, 1992.
 - Henry Rabinowitz and
  Chaim Schaap.
Portable C.
Prentice Hall, 1990.
 - D. M. Ritchie, S. C. Johnson,
  M. E. Lesk, and B. W. Kernighan.
The C programming language.
Bell System Technical Journal, 57(6), July-August, Year=.
 - Dennis M. Ritchie.
The development of the C language.
ACM SIGPLAN Notices, 28(3):201-208, March 1993.
Preprints of the History of Programming Languages Conference (HOPL-II).
 - L. Rosler.
The evolution of c --- past and future.
Bell System Technical Journal, 63(8), October 1984.
 - Robert Sedgewick.
Algorithms in
  C.
Addison-Wesley, 1990.
 - The Accredited
  Standard Committee X3, Information Processing Systems, Technical Committee
  for Programming Language C (X3J11).
Rationale for
  the ANSI C Programming Language.
Silicon Press, 25 Beverly Road, Summit, NJ 07901, USA, 1990.