Who Invented What In C

F

fir

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?
 
N

Noob

fir said:
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
 
F

fir

W dniu piątek, 12 października 2012 11:55:29 UTC+2 użytkownik Noob napisał:
fir wrote:




cf. also Wikipedia:

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

f()
{

}

or

struct S s[200];
 
D

David RF

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:




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
 
F

fir

W dniu piątek, 12 października 2012 13:01:21 UTC+2 użytkownik Noob napisał:
fir said:
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.
 
1

1

Hello Noob,
fir said:
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.
 
F

fir

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?
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.
 
N

Nick Keighley

fir said:
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

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
 
B

Ben Bacarisse

Nick Keighley said:
fir said:
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

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>
 
B

BartC

Ben Bacarisse said:
Nick Keighley said:
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.
 
K

Keith Thompson

BartC said:
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.
 
L

luser.droog

fir said:
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.
 
B

Ben Bacarisse

luser.droog said:
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>
 
I

Ian Bush

Nick Keighley said:
[] 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
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,188
Latest member
Crypto TaxSoftware

Latest Threads

Top