سفارش تبلیغ
صبا ویژن

پاتوق دانشجویان کامپیوتر دانشگاه پیام نور میبد یزد

سلام.اینم یه مطلب علمی بخونیدو حال کنید:

- در سال 1972 توسط برایان کرناین ( Brian Kernighan ) و دنیس ریچی ( Dennis Ritchie ) در AT&T Bell Labs اختراع شد.
- در سال 1983 موسسه استاندارد آمریکا شروع به استانهدارد سازی این زبان کرد.
- در سال 1989 کار استاندارد سازی زبان سی توسط سازمان جهانی استاندارد ادامه ادامه پیدا کرد.
- در سال 1990 کار استاندارد سازی به پایان رسید و امروزه آن را به نام C استاندارد می شناسیم.
- هر چیزی قبل از این C را به نام K&R C می شناسیم.

سی اولین بار توسط برایان کرناین و دنیس ریچی در شرکت AT&T اختراع شد .
موضوع از آنجا شروع شد که سعی کردند یک بازی به نام "asteroids" را بر روی مین فریم های شرکت AT&T اجرا کنند ولی متاسفانه کارایی مین فریم باعث شد که نتوانند آنچه را که میخواهند به اجرا در بیاورند.

بعد ها آنها با استفاده از قدرت کامپیوتر های 386 و تقریبا کمک 100 نفر کاربر متوجه شدند که به اندازه کافی کنترل بر روی فضانورد موجود در بازی ندارند. فضانوردها معمولا به محض اینکه از کنار یک سیاره رد میشدند از بین میرفتند !!

این قضیه تقریبا جنبه شخصی پیدا کرد تا اینکه آنها تصمیم به کد نویسی مجدد بازی بر روی یک سیستم DEC PDP-7 که در شرکت بلا استفاده مانده بود ، گرفتند متاسفانه PDP-7 هیچ سیستم عاملی نداشت بنابر این آنها یک سیستم عامل هم طراحی کردند.

پروژه طراحی سیستم عامل آنقدر عظیم شد که عملا باعث فراموشی بازی astroids گردید . بعدها تصمیم بر آن شد که این سیستم عامل را برای یک DEC PDP-11 آماده کنند ولی این کار واقعا کار سخت و مشکلی بود چرا که تمام کد با دست و بدون کمک هرنوع اسمبلری به زبان ماشین نوشته شده بود.

مجددا تصمیم گیری شد که سیستم عامل را دوباره با کمک یک زبان سطح بالا کد نویسی کنند بنابراین این برنامه بین ماشین های مختلف قابلیت portablity بیشتری پیدا میکرد. تنها چیز مورد نیاز طراحی یک کامپایلر برای هر ماشین جدید و نهایتا کامپایل مجدد کد در ماشین جدید بود.

زبانی که در آن زمان برای این منظور طراحی شد B نام داشت . اما این زبان برای PDP-7 طراحی شده بود و امکانات آن به اندازه ای نبود که بتواند از Instruction Set ماشین PDP-11 استفاده کند در نتیجه زبان C اختراع شد.

Instruction Set مجموعه دستوراتی است که توسط واحد پردازش مرکزی سیستم قابل اجرا است به عنوان مثال تعدادی از دستورات موجود در instruction set یک PIC16Fxxx عبارتند از :

MOVLW
ADDLW
SETB
....

تقریبا همان دستورات اسمبلی !


STANDARDIZATION :
C کم کم داشت بسیار مشهور میشد و با رشد سریع برنامه نویسان در اوایل دهه 1980 هزاران نفر به کمک آن مشغول به برنامه نویسی شدند . حالا زمان آن رسیده بود که قواعد این زبان استاندارد شود.

ANSI :
در آمریکا مسولیت استاندارد سازی زبانها به عهده موسسه استاندارد ایالات آمریکا ( ANSI ) میباشد . نام ANSI در C معرف آن است که این نسخه از زبان C توسط کمیته ای وابسته به ANSI استاندارد سازی شده است . اولین استاندارد ANSI ، X3J11 نام داشت . امروزه استاندارد ANSI برای C ض X3.15901989 میباشد .

ISO :
در عرصه جهانی سازمان استاندارد جهانی ( ISO ) مسولیت استاندارد سازی زبانهای کامپیوتری را بر عهدا دارد. ISO یک کمیته متخصص JTC1/SC22/WG14 را برای برسی استاندارد X3J11 تشکیل داد. در حال حاظر استاندارد ISO برای C ض ISO 9889:1990 میباشد که بسیار شبیه و هماهنگ با X3.159 است.
در بین استاندارد های مختلف تفاوتی در مورد زبان و قواعد آن وجود ندارد و تنها اختلاف در مورد قالب بندی و موارد این چنینی است .

در آخر زبان C که امروزه از آن استفاده میکنیم ISO Standard C است که آن را Standard C میشناسند و آن چیزی را که Kernighan و Dennis طراحی کرده بودند K&R C میشناسیم.



Standard C در مقابل K&R C :
---------------------------------------------------
- قابلیت برسی نوع داده اضافه شد.
- محاسبات ممیز شناور اضافه شد.
- کتابخانه استاندارد برای C طراحی شد.
- قابلیت های جدیدی اضافه گردید
- امروزه تنها انتخابStandard C است.
- بسیاری از کامپایلر های جدید سی از Standard C استفاده میکنند.
- از این به بعد در مباحث درسی منظور ما از سی همان سی استاندارد است.:usmoke


زبان C بسیاری از محاسن خود را مدیون مراحل استاندارد سازی است . سی که امروزه از آن استفاده میکنیم با آنچه در گذشته بوده بسیار فرق دارد. در K&R C هیچ مکانیزم و روشی برای برسی نوع داده پارامترهایی که به توابع ارسال میگردد وجود نداشت بنابراین اگر شما به عنوان یک برنامه نویس میخواستید یک تابع خاص از زبان سی را CALL کنید مسئولیت خواندن دقیق راهنما و ارسال صحیح پارامتر ها به عهده خودتان بود و کامپایلر هیچ کمکی در این مورد به شما نمیکرد. البته یک برنامه به نام lint در آن زمان برای انجام این کار طراحی شد.

محاسبات ممیز شناور در K&R C بیشتر شبیه به جوک بود تا واقعیت ! در تمام محاسبات از نوع داده double استفاده میشد. با وجود اینکه نوع ساده ای از ممیز شناور به نام float وجود داشت اما چون برای محاسبات اعداد float اول باید آنها را به double تبدیل میکردیم و بعد دوباره به float ، انجام این گونه محاسبات بسیار کند بود.(n9

اگرچه یک کتابخانه همراه زبان K&R C وجود داشت اما هیچ استانداردی در مورد اینکه این کتابخانه سامل چه توابعی است وجود نداشت . در بسیاری موارد ممکن یک تابع خاص نامهای متفاوتی داشته باشد ! یا حتی به روشهای متفاوتی از هم کار میکردند
.


ارسال شده در تاریخ نویسنده

سلام بچه ها امیدوارم حاتون خوب باشه . امروز هم نتونستم براتون مطلب بیارم ولی به جاش یه برنامه آوردم توپ توپ .

این برنامه رو تو برنامه سی++ بنویسیدو حالشو ببرید.

#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <time.h>

int main(void)
{
   textmode(C80);
   time_t curtime; // Define a Varible of type time_t.
   clrscr();       // for Clear Screen.
   textcolor(10);  // Change Text Color into Green .
   while (!kbhit()){ /* This Loop will Continue until
when press a key of Keyboard. */
   time(&curtime);   // For Geting Current Date & Time .
   gotoxy(1,1);      // For Change location of the cursor .
   cprintf("Currnet Date and Time is : %s\n",ctime(&curtime));
   delay(1000);      // Delay about 1 second.
   }
   return 0;
}


فقط شرمنده حوصله نداشتم راستو روهمش کنم خودتون درستش کنید . بای بای


ارسال شده در تاریخ نویسنده
Susa Web Tools
پاتوق دانشجویان پیام نور میبد