Dennis Ritchie and Origin of C language
Tags: c
Published: 2020-04-30 00:37:19

## කවුද මේ Dennis Ritchie කියන්නේ?

ඔයාලා බලනවා ඇති කවුද මේ රැවුලා කියලා. ඔව් ඔව් ඉතිං රැවුල තියෙනවා තමයි. අපිට රැවුලෙන් වැඩක් නැනේ, අපි බලමු මෙයා මොනවා ද කරලා තියෙන්නේ කියලා. මං දැන් මෙතන ඉදං මේක ලියන්නෙයි ඔයා ඔතන ඉගෙන මේක කියවන්නෙයි මේ මහත්තයා හිදා තමයි. මේ කතාව පටන්ගන්නේ B වලින්. ඔව් ඔව් Aට පස්සේ තියෙන B තමයි. හැබැයි B කිව්වට [B language](https://en.wikipedia.org/wiki/B_(programming_language)). දැන් ඔයා බලනවා ඇති මොකක් ද යකෝ මේ B language කියන්නේ කියලා. B language කියන්නේ C language කලින් තිබුණ එක. ඔව් ඔව් Bට පස්සේ තියෙන C තමයි. 1972 මේ මහත්තයා [Bell Labs](https://en.wikipedia.org/wiki/Bell_Labs) වලදී B language වැඩි දියුණු කරලා තමයි [C language](https://en.wikipedia.org/wiki/C_(programming_language)) හැදුවේ. ආන්.... හරි ඒ C language තමා. ඔව් ඔව් අද අපි පාවිච්චි කරන ඔක්කොම හදන්න මුල් උනේ මේයා තමා.

තාම් ඉවර නැ කියලා. 1970 දී [Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson) කියන මහත්තයයි මේ මහත්තයයි තව මහත්වරු කීප දෙනෙකුයි එකතු වෙලා තමයි Bell Labs වලදී වලදී [Unix OS](https://en.wikipedia.org/wiki/Unix) ලිව්වේ. හම්.... එකත් හදලා තියෙන්නේ මේ යෝදයාම තමයි. මට කියන්න අමතක උනානේ Ken Thompson කියන මහත්තයා තමයි B language හැදුවේ.

1973 දී මේ මහත්තයා B ලියලා තිබුණු Unix kernel අමුතුවෙන්ම C වලිව්වා [Version 4 Unix](https://en.wikipedia.org/wiki/Version_4_Unix) වලට.

2011 ඔක්තෝම්බර් 12 මේ මහත්තයා අපි අතරින් සමු ගන්නවා.

---

## Origin of C language

Ken Thompson මහත්තයා ලියපු B language තිබුණේ typeless (everything is a word) ක්‍රමයක් ඉතිං ඒ වෙනුවට static types system හදපු එක තමයි Dennis Ritchie මහත්තයා කලේ.
``` b
strcopy(sl,s2)
{
	auto i;
	i = 0;
	while (lchar(sl,i,char(s2,i)) != '*e') i++;
}
```
ඔය උඩ තියෙන්නේ B වලින් ලියපු code උදහරණයක්. auto කියන keyword තමයි veritable හදලා තියෙන්නේ. C වල වගේ void, int, char, double හ float වගේ data types නෑ ඔක්කොටම තියෙන්නේ auto විතරයි. ඒ කාලේ හැටියට C වලින් ලැබුණු ලොකුම ප්‍රයෝජනය තමයි Assembly language වලින් කලින් ලියපු apps C වලින් හුගක් හොදට ගොඩක් කාලයක් තියෙන විදියට ලියන්න පුලුවම් උන එක.

Unix kernel තමයි assembly වලින් නැතුව C වලින් ලියපු පලවෙනි kernel.

**Timeline of language development**

| Year    | C Standard   | 
| ------------- |:-------------:| 
| 1972    | Birth | 
| 1978      | K&R C      |  
| 1989/1990 | ANSI C and ISO C      | 
|1999|C99|
|2011|C11|
|2017/2018|C18|

![Other Variations of C - Christian Rey Ompad - Medium](https://miro.medium.com/max/960/1*DbgPt0izylkbD7qP13mQlQ.jpeg)

## K&R C

1978 Brian Kernighan හා Dennis Ritchie කියන මහත්වරු දෙන්නා එකතු වෙලා ලියපු The C Programming Language කියන පොත අනුව හදපු C version තමයි K&R C කියලා කියන්නේ.

![lavandeira.net – Relearning MSX #16: Roadmap](https://www.lavandeira.net/wp-content/uploads/2015/03/c_books-635x476.jpg)
-   [`void`](https://en.wikipedia.org/wiki/Void_type) functions (i.e., functions with no return value)
-   functions returning [`struct`](https://en.wikipedia.org/wiki/Struct_(C_programming_language)) or [`union`](https://en.wikipedia.org/wiki/Union_(computer_science)) types (rather than pointers)
-   [assignment](https://en.wikipedia.org/wiki/Assignment_(computer_science)) for `struct` data types
-   [enumerated types](https://en.wikipedia.org/wiki/Enumerated_type)

වගේ දේවල් මුලිනම එලි දක්වන්නේ K&R C වලදී තමයි.
ඒ පොතේ දෙවෙනි edition දී ANSI C ප්‍රමිතියට අනුව තමයි එලි දක්වන්නේ.

## ANSI C and ISO C

1983 දී  American National Standards Institute (ANSI) පත්  කරපු X3J11 කමිටුව තමයි ANSI සම්මුතිය නිර්මාණය කලේ.1990 දී  International Organization for Standardization (ISO) ANSI C ISO/IEC 9899:1990 ව්දියට හදලා එලියට දැම්මා. C89 හා C90 කියලා හදුන්වන්නෙත් ඔය ISO C තමා. අද අපි පාවිච්චි කරන හුගක් C compilers පාදක කරගෙන තියෙන්නේ C89 තමා.

ANSI C වලදී හදුන්වා දුන් දෑ :

*  Inline functions 
* Several new data types :long long int හාcomplex තවත් කිහිපයක්. 
* Variable-length arrays  
* Flexible array members

## C99 and C11

1999 C99 (ISO/IEC 9899:1999) ත් 2011 දී C11 නුත් හදුන්වා දුන්නා.

>> Don't forget to say hello to the search box for further details.

---
## References

https://en.wikipedia.org/wiki/Dennis_Ritchie
https://en.wikipedia.org/wiki/Ken_Thompson
https://medium.com/@christianreyompad/other-variations-of-c-3a78634e7891
https://yurichev.com/blog/typeless/
https://en.wikipedia.org/wiki/C_(programming_language)