Who Invented What In C

Discussion in 'C Programming' started by fir, Oct 12, 2012.

  1. fir

    fir Guest

    Sory for my weak english.
    Today is one year aniversary of Mr. D. Ritchie death,
    but my question is unreleted to that (just by chance, so I
    mention it).
    I am just curious which parts (concepts/ideas) contained in c language was invention of which inventor. As I see an exampls of B codes very much of it contains a c language
    concepts. Could maybe someone explain who invented general
    form of function definition, who invented base types (int/float), who inventet array-pointer magic, who general
    binary form of function and other must important concepst in c, in separate. Also, whot in c is not contained in b?
     
    fir, Oct 12, 2012
    #1
    1. Advertising

  2. fir

    Noob Guest

    fir wrote:

    > I am just curious which parts (concepts/ideas) contained in c language was invention of which inventor. As I see an example of B codes very much of it contains a c language
    > concepts. Could maybe someone explain who invented general
    > form of function definition, who invented base types (int/float), who invented array-pointer magic, who general
    > binary form of function and other must important concepts in c, in separate. Also, what in c is not contained in b?


    Straight from the "horse's mouth"

    http://cm.bell-labs.com/who/dmr/chist.html

    cf. also Wikipedia:

    https://en.wikipedia.org/wiki/C_(programming_language)#History

    > The initial development of C occurred at AT&T Bell Labs between 1969
    > and 1973;[3] according to Ritchie, the most creative period occurred
    > in 1972. It was named "C" because its features were derived from an
    > earlier language called "B", which according to Ken Thompson was a
    > stripped-down version of the BCPL programming language.
    >
    > The origin of C is closely tied to the development of the Unix
    > operating system, originally implemented in assembly language on a
    > PDP-7 by Ritchie and Thompson, incorporating several ideas from
    > colleagues. Eventually they decided to port the operating system to a
    > PDP-11. B's inability to take advantage of some of the PDP-11's
    > features, notably byte addressability, led to the development of an
    > early version of C.
    >
    > The original PDP-11 version of the Unix system was developed in
    > assembly language. By 1973, with the addition of struct types, the C
    > language had become powerful enough that most of the Unix kernel was
    > rewritten in C.


    and https://en.wikipedia.org/wiki/B_(programming_language)#History

    > Ken Thompson wrote B basing it mainly on the BCPL language he had
    > used to write Unix while in the Multics project. B was essentially
    > the BCPL system stripped of any component that Thompson felt he could
    > do without, in order to make it fit within the memory capacity of the
    > minicomputers of the time. The language also included some changes
    > made to suit Thompson's preferences (mostly along the lines of
    > reducing the number of non-whitespace characters in a typical
    > program).


    and https://en.wikipedia.org/wiki/BCPL
     
    Noob, Oct 12, 2012
    #2
    1. Advertising

  3. fir

    fir Guest

    W dniu piątek, 12 października 2012 11:55:29 UTC+2 użytkownik Noob napisał:
    > fir wrote:
    >
    >
    >
    > > I am just curious which parts (concepts/>

    >
    > cf. also Wikipedia:
    >


    alrite, but my question is more specific, for
    example who invented this

    f()
    {

    }

    or

    struct S s[200];
     
    fir, Oct 12, 2012
    #3
  4. fir

    David RF Guest

    El viernes, 12 de octubre de 2012 12:07:47 UTC+2, fir escribió:
    > W dniu piątek, 12 października 2012 11:55:29 UTC+2 użytkownik Noob napisał:
    >
    > > fir wrote:

    >
    > >

    >
    > >

    >
    > >

    >
    > > > I am just curious which parts (concepts/>

    >
    > >

    >
    > > cf. also Wikipedia:

    >
    > >

    >
    >
    >
    > alrite, but my question is more specific, for
    >
    > example who invented this
    >
    >
    >
    > f()
    >
    > {
    >
    >
    >
    > }
    >
    >
    >
    > or
    >
    >
    >
    > struct S s[200];


    Who invented subroutines?
    (from Wikipedia)
    In computer science, a subroutine, also termed procedure, function, routine, method, or subprogram, is a part of source code within a larger computer program that performs a specific task and is relatively independent of the remaining code.

    As the name subprogram suggests, a subroutine behaves in much the same way as a computer program that is used as one step in a larger program or another subprogram. A subroutine is often coded so that it can be started (called) several times and/or from several places during one execution of the program, including from other subroutines, and then branch back (return) to the next instruction after the call once the subroutine's task is done.

    Maurice Wilkes, David Wheeler, and Stanley Gill are credited with the invention of this concept, which they termed a closed subroutine.

    (structs or records)
    The concept of record can be traced to various types of tables and ledgers used in accounting since remote times. The modern notion of records in computer science, with fields of well-defined type and size, was already implicit in 19th century mechanical calculators, such as Babbage's Analytical Engine.[citation needed]

    Records were well established in the first half of the 20th century, when most data processing was done using punched cards. Typically each records ofa data file would be recorded in one punched card, with specific columns assigned to specific fields.

    Most machine language implementations and early assembly languages did not have special syntax for records, but the concept was available (and extensively used) through the use of index registers, indirect addressing, and self-modifying code. Some early computers, such as the IBM 1620, had hardware support for delimiting records and fields, and special instructions for copying such records.

    The concept of records and fields was central in some early file sorting and tabulating utilities, such as IBM's Report Program Generator (RPG).

    COBOL was the first widespread programming language to support record type
     
    David RF, Oct 12, 2012
    #4
  5. fir

    Noob Guest

    fir wrote:

    > alright, but my question is more specific,


    Did you REALLY read dmr's account in 11 minutes?

    http://cm.bell-labs.com/who/dmr/chist.html

    > for example who invented this
    >
    > f()
    > {
    >
    > }
    >
    > or
    >
    > struct S s[200];


    dmr used the array notation "[N]" in B.
    and introduced the struct keyword (and syntax) in early versions of C.

    I'm not sure what the POINT of these questions is, however.
     
    Noob, Oct 12, 2012
    #5
  6. fir

    fir Guest

    W dniu piątek, 12 października 2012 13:01:21 UTC+2 użytkownik Noob napisał:
    > fir wrote:
    > > alright, but my question is more specific,

    >
    > Did you REALLY read dmr's account in 11 minutes?
    > http://cm.bell-labs.com/who/dmr/chist.html
    > > for example who invented this

    >
    > >
    > > f()
    > > {
    > >
    > > }
    > >
    > > or
    > >
    > > struct S s[200];

    > dmr used the array notation "[N]" in B.
    > and introduced the struct keyword (and syntax) in early versions of C.
    >
    > I'm not sure what the POINT of these questions is, however.


    i did read it before - though do not fully
    remember it The point is as i said: I consider c as a set of many concepts,and I am interested who invented which one of them.
     
    fir, Oct 12, 2012
    #6
  7. fir

    Noob Guest

    Noob, Oct 12, 2012
    #7
  8. fir

    1 Guest

    Hello Noob,

    > fir wrote:
    >
    >> I am just curious which parts (concepts/ideas) contained in c
    >> language was invention of which inventor. As I see an example of B
    >> codes very much of it contains a c language
    >>
    >> concepts. Could maybe someone explain who invented general
    >>
    >> form of function definition, who invented base types (int/float), who
    >> invented array-pointer magic, who general
    >>
    >> binary form of function and other must important concepts in c, in
    >> separate. Also, what in c is not contained in b?
    >>

    > Straight from the "horse's mouth"
    >
    > http://cm.bell-labs.com/who/dmr/chist.html
    >
    > cf. also Wikipedia:
    >
    > https://en.wikipedia.org/wiki/C_(programming_language)#History
    >
    >> The initial development of C occurred at AT&T Bell Labs between 1969
    >> and 1973;[3] according to Ritchie, the most creative period occurred
    >> in 1972. It was named "C" because its features were derived from an
    >> earlier language called "B", which according to Ken Thompson was a
    >> stripped-down version of the BCPL programming language.
    >>
    >> The origin of C is closely tied to the development of the Unix
    >> operating system, originally implemented in assembly language on a
    >> PDP-7 by Ritchie and Thompson, incorporating several ideas from
    >> colleagues. Eventually they decided to port the operating system to a
    >> PDP-11. B's inability to take advantage of some of the PDP-11's
    >> features, notably byte addressability, led to the development of an
    >> early version of C.
    >>
    >> The original PDP-11 version of the Unix system was developed in
    >> assembly language. By 1973, with the addition of struct types, the C
    >> language had become powerful enough that most of the Unix kernel was
    >> rewritten in C.
    >>

    > and https://en.wikipedia.org/wiki/B_(programming_language)#History
    >
    >> Ken Thompson wrote B basing it mainly on the BCPL language he had
    >> used to write Unix while in the Multics project. B was essentially
    >> the BCPL system stripped of any component that Thompson felt he could
    >> do without, in order to make it fit within the memory capacity of the
    >> minicomputers of the time. The language also included some changes
    >> made to suit Thompson's preferences (mostly along the lines of
    >> reducing the number of non-whitespace characters in a typical
    >> program).
    >>

    > and https://en.wikipedia.org/wiki/BCPL
    >



    Thanks a lot good sir! Thanks to you, now I will have to spend whatever free
    time I have today reading this articles :D.
     
    1, Oct 12, 2012
    #8
  9. fir

    fir Guest

    W dniu piątek, 12 października 2012 13:14:09 UTC+2 użytkownik fir napisał:
    > W dniu piątek, 12 października 2012 13:01:21 UTC+2 użytkownik Noob napisał:
    >
    > > fir wrote:

    >
    > > > alright, but my question is more specific,

    >
    > >

    >
    > > Did you REALLY read dmr's account in 11 minutes?

    >
    > > http://cm.bell-labs.com/who/dmr/chist.html

    >
    > > > for example who invented this

    >
    > >

    >
    > > >

    >
    > > > f()

    >
    > > > {

    >
    > > >

    >
    > > > }

    >
    > > >

    >
    > > > or

    >
    > > >

    >
    > > > struct S s[200];

    >
    > > dmr used the array notation "[N]" in B.

    >
    > > and introduced the struct keyword (and syntax) in early versions of C.

    >
    > >

    >
    > > I'm not sure what the POINT of these questions is, however.

    >
    >
    >
    > i did read it before - though do not fully
    >
    > remember it The point is as i said: I consider c as a set of many concepts, and I am interested who invented which one of them.


    Allrite Ive read it and I found the answer:
    I can say that c (and spirit of it) is originated in Thompson work but Ritchie generalized it somewhat (and even made language stronger so he also is 'responsible' for
    the language. So for sure they both are
    authors of 'lower' and 'upper' part of it.
     
    fir, Oct 12, 2012
    #9
  10. On Oct 12, 12:01 pm, Noob <r...@127.0.0.1> wrote:
    > fir wrote:
    > > alright, but my question is more specific,

    >
    > Did you REALLY read dmr's account in 11 minutes?
    >
    > http://cm.bell-labs.com/who/dmr/chist.html
    >
    > > for example who invented this

    >
    > > f()
    > > {

    >
    > > }

    >
    > > or

    >
    > > struct S s[200];

    >
    > dmr used the array notation "[N]" in B.


    [] for arrays goes all the way back to FORTRAN

    > and introduced the struct keyword (and syntax) in early versions of C.
    >
    > I'm not sure what the POINT of these questions is, however.


    nor me. There's little in C that's utterly new (perhaps the
    declaration syntax) but its a nicely chosen set of features packaged
    in a compact and reasonably nice syntax
     
    Nick Keighley, Oct 13, 2012
    #10
  11. Nick Keighley <> writes:

    > On Oct 12, 12:01 pm, Noob <r...@127.0.0.1> wrote:
    >> fir wrote:
    >> > alright, but my question is more specific,

    >>
    >> Did you REALLY read dmr's account in 11 minutes?
    >>
    >> http://cm.bell-labs.com/who/dmr/chist.html
    >>
    >> > for example who invented this

    >>
    >> > f()
    >> > {

    >>
    >> > }

    >>
    >> > or

    >>
    >> > struct S s[200];

    >>
    >> dmr used the array notation "[N]" in B.

    >
    > [] for arrays goes all the way back to FORTRAN


    Which version? I've never seen them in Fortran and I just checked
    various documents up to Fortran 77. They may have been added in'90 but
    that's not "all the way back"!

    <snip>
    --
    Ben.
     
    Ben Bacarisse, Oct 13, 2012
    #11
  12. fir

    BartC Guest

    "Ben Bacarisse" <> wrote in message
    news:...
    > Nick Keighley <> writes:
    >
    >> On Oct 12, 12:01 pm, Noob <r...@127.0.0.1> wrote:


    >>> dmr used the array notation "[N]" in B.

    >>
    >> [] for arrays goes all the way back to FORTRAN

    >
    > Which version? I've never seen them in Fortran and I just checked
    > various documents up to Fortran 77. They may have been added in'90 but
    > that's not "all the way back"!


    Fortran uses () for array indexing instead of []; I'm fairly certain that
    was part of the language in the early sixties.

    But I doubt that using square brackets instead of round was the innovation
    that Noob had in mind. In any case square brackets were already in use by
    Algol. What might have been new in C was mixing up arrays with pointers.

    --
    Bartc
     
    BartC, Oct 13, 2012
    #12
  13. "BartC" <> writes:
    [...]
    > Fortran uses () for array indexing instead of []; I'm fairly certain that
    > was part of the language in the early sixties.


    As I recall, that was because some early character sets didn't have
    square brackets.

    > But I doubt that using square brackets instead of round was the innovation
    > that Noob had in mind. In any case square brackets were already in use by
    > Algol. What might have been new in C was mixing up arrays with pointers.


    C got that from B and/or BCPL.

    --
    Keith Thompson (The_Other_Keith) <http://www.ghoti.net/~kst>
    Will write code for food.
    "We must do something. This is something. Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"
     
    Keith Thompson, Oct 13, 2012
    #13
  14. fir

    luser.droog Guest

    fir wrote:

    > Sory for my weak english.
    > Today is one year aniversary of Mr. D. Ritchie death,
    > but my question is unreleted to that (just by chance, so I
    > mention it).
    > I am just curious which parts (concepts/ideas) contained in c language was
    > invention of which inventor. As I see an exampls of B codes very much of
    > it contains a c language concepts. Could maybe someone explain who
    > invented general form of function definition, who invented base types
    > (int/float), who inventet array-pointer magic, who general binary form of
    > function and other must important concepst in c, in separate. Also, whot
    > in c is not contained in b?


    Most of these basic concepts are the same among all "algebraic" languages.
    These were fairly well solidified in the early 60s with the efforts on
    ALGOL and FORTRAN; and C reaped the fruits and selected a small set of
    basic operations. But even ALGOL was the result of a great deal of earlier
    work in automatic translation.

    But even automatic translation would be useless without a reliable
    Von Neumann architecture. Doesn't matter what you can compile if the
    processor doesn't accept new programs.

    Before asking who invented what, perhaps you should first inventory
    what was unique in C. Most of C was NOT-INVENTED-HERE.

    A Good Source I've found for the old wisdom about computers is
    Bell and Newell, Computer Structures: Readings and Examples, 1971.
    As described in the massive introductory section, the book is a
    Proto-Textbook. Meaning they'd gathered a ridiculous amount of
    material and had just figured out a way to organize and understand
    about half of it so here you go... Filled with the details of
    real machines and original papers by Von Neumann and F.P. Brooks.

    And of course, "From Leibniz to Turing."
    or Umberto Eco, "The Search for the Perfect Language." for the same
    ideas further afield.
     
    luser.droog, Oct 14, 2012
    #14
  15. "luser.droog" <> writes:
    <snip>
    > But even automatic translation would be useless without a reliable
    > Von Neumann architecture. Doesn't matter what you can compile if the
    > processor doesn't accept new programs.


    I don't think you mean "Von Neumann architecture". Nothing under
    discussion relies on having a single data+code pathway. I think you
    mean "stored program computer".

    <snip>
    --
    Ben.
     
    Ben Bacarisse, Oct 14, 2012
    #15
  16. fir

    Ian Bush Guest

    On 13/10/12 12:47, Ben Bacarisse wrote:
    > Nick Keighley <> writes:
    >
    >>
    >> [] for arrays goes all the way back to FORTRAN

    >
    > Which version? I've never seen them in Fortran and I just checked
    > various documents up to Fortran 77. They may have been added in'90 but
    > that's not "all the way back"!
    >


    As other have said Fortran use parentheses for arrays. Just for
    completeness [] only came into Fortran in 2003 where it can be used as
    an "array constructor"

    Integer, Dimension( 1:3 ) :: a
    a = [ 4, 12, 2 ]

    Array constructors actually came into the language at Fortran 90 with a
    slightly different syntax

    a = (/ 4, 12, 2 /)

    and the square bracket is just an alternative which some think is clearer,

    Ian
     
    Ian Bush, Oct 15, 2012
    #16
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Phlip

    Who invented Jemmy?

    Phlip, Aug 4, 2004, in forum: Java
    Replies:
    5
    Views:
    624
    Martin Brehovsky
    Aug 4, 2004
  2. Nicole
    Replies:
    7
    Views:
    782
    the idiot
    Aug 30, 2005
  3. Keith H Duggar
    Replies:
    5
    Views:
    692
    Bo Persson
    Jun 18, 2009
  4. Karl-Hugo Weesberg

    Javascript was invented by an evil AI ! ! !

    Karl-Hugo Weesberg, Oct 23, 2004, in forum: Javascript
    Replies:
    8
    Views:
    135
    Dr John Stockton
    Oct 25, 2004
  5. Replies:
    9
    Views:
    136
    juglesh
    Mar 4, 2005
Loading...

Share This Page