پاسکال
بلز پاسکال ریاضیدان، فیلسوف و فیزیکدان فرانسوی 19 ژوئن 1623 در کلرمون واقع در مرکز فرانسه – 19 اوت 1662 در پاریس، به دنیا آمد.
کسی که او را «پاک ترین موجود جهان» نامیده اند.
پدرش ریاست اداره مالیات کلرمون را به عهده داشت.
خواهرش ژیلبرت زندگی نامه او را نوشت و خواهر دیگرش ژاکلین او را به صومعه کشانید تا خودش را وقف کلیسا کند و در واقع موجب مرگ او و بی بهره شدن جهان دانش از وجود یک نابغه شد.
پدرش به خاطر تحصیل او، از کار خود استعفا کرد و خانواده را به پاریس آورد (1639) در بیست و پنج سالگی فعالیت های علمی خود را رها کرد و به دیر «ژان سنیست ها» رفت چرا که «ژان سن» معتقد بود «دانش یک شهود روانی است شبیه اشتهای جسمی» و این همان پاسکال است که زمانی به شوهر خواهرش نوشته بود :«...
گمان نمی کنم ناچار باشیم اندیشه ها و حکم هایی را که از گذشته به ما رسیده است، بپذیریم، مگر آنکه استدلالی منطقی و بی تردید داشته باشند و به نظر من نهایت ضعف و نادانی است که به حقیقت های روشن ومسلم گردن ننهیم و به اندیشه های کهنه خود باور داشته باشیم.»
فعالیتهای علمی
پاسکال در 12 سالگی بسیاری از قضیه های هندسه اقلیدسی را پیش خود اثبات کرد.
در 16 سالگی قضیه ای از هندسه تصویری را کشف کرد (قضیه پاسکال)، در همان سال کتاب «مقاطع مخروطی» را نوشت.
در سال 1640 نخستین ماشین حساب را ساخت، نظریه احتمال را بنیان گذاشت.
به جز آن کشف هایی در «تعادل آب گون ها» ، «فشار هوا» و غیر آن دارد.
او کارهای مهمی در هیدروستاتیک (که به همین سبب واحد فشار، پاسکال نامیده میشود) انجام داد و بحثهایش با فرما در مورد مساله دومره نظریه احتمال را بنا نهاد.
مثلث پاسکال یا نمودار ضریب دو جمله ای، از آن او نبوداما وی آن را در محاسبه های احتمالش به کار برد.
پاسکال در کار مربوط به یافتن مساحتهای اشکال منحنی الخط نیز شرکت داشت،کاری که منجر به حساب دیفرانسیل و انتگرال شد.
تاریخچه
پاسکال بر پایه زبان برنامه نویسی Algol می باشد و به افتخار ریاضی دان و فیلسوف فرانسوی Blaise Pascal نام گذاری شد.
آقای Wirth متعاقباٌ Modula-2 و Obern که شبیه پاسکال بودند را توسعه داد.
قبل از آن و برای تهیه مقدمات پاسکال، ایشان زبان Euler که از Algol-W پیروی می کرد را توسعه دادند.
در ابتدا پاسکال بسیاروسیع و جامع بود، اما تنها به منظور یاددادن برنامه نویسی ساخت یافته به دانشجویان نبود.
نسلهای متمادی از دانشجویان بر روی پاسکال به عنوان یک زبان مقدماتی در دوره های لیسانس کار کردند.
همچنین نسخه های متفاوتی از پاسکال مکرراً برای هر چیزی از پروژه های تحقیقاتی گرفته تا بازی های رایانه ای و سیستم های جاسازی شده استفاده شد.
هم اکنون کامپایلر های جدید تر پاسکال موجود می باشند که که به طور وسیع و گسترده استفاده می شوند.
پاسکال نخستین زبان سطح بالا بود که برای توسعه و تکامل در Apple Lisa استفاده شد و در سال های اولیه Mac، قسمت هایی از سیستم عامل اصلی مکینتاش، از منابع پاسکال توسط دست به زبان اسمبلی 68000 Motorola ترجمه شد.
حروفچینی محبوب سیستم TeX توسط Donald E.Knuth در WEB (سیستم برنامه نویسی آموزش دیده اصلی) نوشته شد، که بر پایه DEC PDP-10 Pascal می باشد، آن هم در هنگامی که یک برنامه کاربردی مانند Total Commander در Delphi (پاسکال شی گرا) نوشته شد.
چکیده
قصد آقای Wirth خلق یک زبان کار آمد بود (در هر دو مورد سرعت کامپایل و کد ساخته شده) که بر پایه به اصطلاح برنامه نویسی ساخت یافته (مفهومی که به تازگی محبوب شده است) می باشد.
اصول و ریشه های پاسکال در زبان الگول 60 می باشد، اما علاوه بر آن مفاهیم و مکانیزم هایی را مافوق اعداد و آرایه های الگول معرفی کرد که برنامه نویسان را قادر به تعریف انواع داده (ساختمان) پیچیده خودشان می کرد و همچنین ساخت ساختمان داده های بازگشتی و پویا مانند لیست ها، درخت ها و گرافها را آسانتر می کرد.
امکانات مهم که برای این امور اضافه شده بود، رکوردها، شمارش ها، زیر حوزه ها، متغیر های اختصاص داده شده پویا همراه اشاره گر های وابسته و مجموعه ها می باشد.
برای تحقق و معنی دار کردن این امر، پاسکال یک سیستم تایپ دهی قوی روی تمام اشیا دارد، به این معنی که یک نوع داده نمی تواند بدون تبدیل صریح، به عنوان نوع دیگر تفسیر و یا تبدیل شود.
امروزه در بسیاری از زبان های برنامه نویسی مکانیزم های مشابهی به صورت استاندارد می باشند.
زبان های دیگر که از توسعه پاسکال تأثیر گرفتند، کوبول، سیمولا 67 و Algol W خود آقای Wirth می باشند.
پاسکال مانند بسیاری از زبان های اسکریپتی امروزه ( اما بر خلاف زبان های خانواده C ) به تعریف پروسه های تودرتو تا هر عمقی و همچنین اکثر انواع تعریف ها و اعلان ها درون پروسه ها و توابع اجازه می دهد.
این امر یک نحو خیلی ساده و منسجم را امکان پذیر می سازدکه یک برنامه کامل از نظر نحوی، خیلی نزدیک به یک تابع و یا پروسه تنهاست (البته به استثنای خود کلمه کلیدی).
پیاده سازی اولین کامپایلر پاسکال برای سری CDC 6000 خانواده کامپیوتر های پردازنده مرکزی در زوریخ طراحی شد.
آقای Wirth گزارش می دهد که اولین کوشش برای پیاده سازی آن در فرترن در سال 1969 با توجه به نارسایی فرترن برای بیان ساختمان داده های پیچیده، ناموفق بود.
دومین تلاش ها برای خود زبان پاسکال تنظیم و فرموله شد و در اواسط سال 1970 قابل استفاده شد.
پس از آن بسیاری از کامپایلر های پاسکال به طور مشابه، خودمیزبان بودند، به این معنا که خود کامپایلر در پاسکال نوشته شده است و کامپایلر هنگامی که امکانات جدید به زبان اضافه می شود و یا به محیطی جدید منتقل می شود، معمولاً قادر به دوباره کامپایل کردن خود می باشد.
کامپایلر GNU Pascal یک استثنای قابل توجه در این مورد می باشد که در C نوشته شده است.
اولین انتقال موفق کامپایلر CDC Pascal به یک کامپیتر پردازنده مرکزی دیگر، توسط Welsh و Quinn در دانشگا ه Queen در شهر Balfast در سال 1972 انجام گرفت.
کامپیوتر هدف یک ICL 1900 بود.
اولین کامپایلر پاسکال که در آمریکای شمالی نوشته شد، در دانشگاه Illinois زیر نظر Donald B.Gillies برای PDP-11 و کد ماشین تولید شده محلی ، ساخته شد.
پاسکال در سراسر سال های 1970 و 1980 از محبوبیتی بزرگ برخوردار بود.
به منظور انتشار سریع زبان، یک کامپایلر (porting kit) در زوریخ ساخته شد که شامل یک کامپایلر بود که برای یک ماشین پشته مجازی کد تولید می کرد(یعنی کدی که خودش را به یک تفسیر کارآمد معقول از خودش ارجاع می داد) به همراه یک مفسر برای این کد Pascal-P system.
اگر چه کد SC (کامپیوتر استک) در ابتدا به قصد کامپایل به کد ماشین صحیح بود، حداقل یک سیستم (سیستم پاده سازی جالب توجه UCSD) از آن برای خلق مفسر UCSD P-system استفاده کرد.
کامپایلرهای سیستم P، با P1 تا P4 نامیده می شوند.
P1 به عنوان اولین نسخه و P4 به عنوان آخرین نسخه انتشار یافته از زوریخ.
کامپایلر/ مفسرP4 هنوز برروی سیستمهای سازگار با پاسکال اصلی قابل اجرا و کامپایل است.
با این حال خودش فقط یک زیرمجموعه از زبان پاسکال را قبول می کند.
یک نسخه از P4 که زبان پاسکال کامل را قبول می کند و سازگار با ISO 7185 است، نیز ساخته شد و به نام کامپایلر P5 نامگذاری شد که به صورت منبع در دسترس و مهیاست.
یک نسخه جایگزین از آن که به عنوان مدل پیاده سازی پاسکال شناخته می شودنیز پاسکال کامل را قبول می کند و با ISO 7185 سازگار است، اما در کامپیوتر های خواندنی فراهم نمی باشد.
یک نسخه از کامپایلرهای P4 که اعداد باینری محلی را خلق کرد، برای کامپیوتر پردازنده مرکزی IBM System 370 توسط کمیسیون انرژی اتمی استرالیا ارائه شد.
این کامپایلر AAECPascal Compiler نامیده شد پس از حروف اختصاری نام کمیسیون.
یک نسخه از P4 از 6-1975 شامل منابع و اعداد باینری لازم برای کامپایلر و فایل های کتابخانه ای زمان اجرا، برای پردازنده مرکزی PDP-10 ممکن است از این پیوند قابل دریافت باشد.
در اوایل 1980 WatcomPascal نیز برای IBM System 370 توسعه داده شد.
IP Pascal یک پیاده سازی از زبان برنامه نویسی پاسکال بود که از Micropolis Dos استفاده می کرد، اما به سرعت به CP/M که برروی Z80 اجرا می شد، حرکت کرد.
بعدها نیز به انواع ماشین های 80386 در سال 1994 حرکت کرد و امروزه به صورت پیاده سازی شده در Linux و Windows/XP وجود دارد.
در سال 2008 سیستم به یک سطح جدید ارتقا یافت و زبان حاصله به عنوان Pascaline (بعد از Pascal’s Calculator ) نامیده شد.آن زبان، شامل اشیا، کنترل های فضای نام، آرایه های پویا، به همراه بسیاری الحاقات دیگر، و امکانات عمومی دارای کارکرد مشابه، و حفاظت نوع داده همانند C# می باشد.
این تنها پیاده سازی است که با پیاده سازی پاسکال اصلی سازگارمی باشد (که در ISO 7185 استاندارد شده است).
در اوایل 1980 به منظور مهیا کردن یک جایگزین ساخت یافته برای مفسرهای پایه که با ماشین ها آمدند، UCSD Pascal به کامپیوترهای Apple II,Apple III انتقال یافت.
کامپیوتر Apple، Lisa Pascal خودش را برای محیط کار Lisa در سال 1982 خلق کرد و این کامپایلر را به Apple Macintosh و MPW در سال 1985 منتقل کرد.
در سال 1985 Larry Tesler در مشاوره با Niklaus Wirth پاسکال شی گرا را تعریف کردو این امکانات در هر دوی Lisa Pascal و Mac Pascal جای داده شدند.
در سال های 1980، Anders Hejlsberg کامپایلر Blue Label را برای Nascom-2 نوشت.
یک پیاده سازی مجدد از این کامپایلر برای IBM PC تحت نام های Compas Pascal و PolyPascal قبل از اینکه توسط Borland شناسایی شود، در معرض فروش قرار داده شد.
نامگذاری مجدد به Turbo Pascal موجب افزایش محبوبیت و قدردانی شد.
قدردانی در یک قسمت به خاطر یک راهبرد قیمت گذاری جسورانه و پر پشتکار و در یک قسمت به خاطر داشتن یکی از نخستین محیط های توسعه یکپارچه تمام صفحه.
علاوه بر اینها، Turbo در زبان اسمبلی نوشته شد و تماماً به نحو احسن بهینه شد که سبب شد در رقابت بسیار کوچکتر و سریعتر شود.
در سال 1986، Anders، توربو پاسکال را به Macintosh منتقل کرد و الحاقات پاسکال شی گرای Apple را با Turbo درآمیخت.
این الحاقات سپس مجدداً به توربو پاسکال نسخه PC شماره 5.5 اضافه شدند.
کامپایلر ارزان بورلند یک تأثیر شگرف بر جامعه پاسکال گذاشت که سبب تمرکز ویژه برروی کامپیوتر های شخصی IBM در اواخر سال های 1980 شد.
بسیاری از علاقمندان به کامپیوترهای شخصی که در جستجوی یک جایگزین ساخت یافته برای BASIC بودند، شروع به استفاده از این محصول کردند.
همچنین این محصول توسط استفاده کنندگان حرفه ای نیز کم کم مورد پذیرش قرار گرفت.
درهمین حین، تعدادی مفاهیم از C، به منظور اجازه دادن به برنامه نویسان پاسکال برای استفاده مستقیم از API های Microsoft Windows که بر پایه C بودند، وارد پاسکال شدند.
این الحاقات مشتمل بر رشته های بدون پایان، اشاره گرهای عددی و حسابی، اشاره گر های توابع، آدرس عملگرها و انواع داده ای ناامن می باشند.
با این حال، بورلند بعداً تصمیم گرفت که امکانات شی گرایی با دقت بیشتر و جزئیات دقیقتر می خواهد و آن را با استفاده از پیش نویس های استاندارد پاسکال شی گرا که توسط Apple به عنوان اساس و پایه پیشنهاد شده بود، مجدداً در Delphi پیاده کرد( این پیش نویس Apple هنوز یک استاندارد رسمی نمی باشد).
بنابراین اولین نسخه های زبان برنامه نویسی Delphi، پاسکال شی گرا (Object Pascal) نامیده شدند.الحاقات اصلی در مقایسه با پاسکال شی گرای قدیمی تر، مدل شی گرای مبتنی بر مرجع، سازنده ها و مخرب های مجازی و جزئیات بودند.
کامپایلر های متعدد دیگر نیز این شیوه را اجرا و پیاده سازی کردند.
توربو پاسکال و دیگر مشتقات به همراه واحدها یا مفاهیم پیمانه ای، هم از زبان های پیمانه ای هستند.
با این حال، مفهوم پیمانه تودرتو و یا ورود و خروج صحیح نمادهای ویژه را مهیا نمی کنند.
Super Pascal یک نوع دیگر بود که برچسب های بدون عدد را اضافه کردکه یک دستور یا عبارت بازگشت به عنوان نام هایی از نوع ها می باشد.
دانشگاه های زوریخ، Karlsruhe و Wuppertal، یک قابلیت را برای محاسبات علمی توسعه دادند (XSC Pascal) که یک راه حل مفید را برای برنامه ریزی محاسبات عددی با دقت کنترل شده، مهیا می کند.
در سال 2005 در کنفرانس WEB 2.0 ، Marfic Technology ابزاری معرفی کرد که توسعه کاربردهای WEBکه تماماً در Marfic Pascal نوشته شده بود را مهیا می کرد.
Marfic Pascal یک گونه از پاسکال شی گرا است که بسیار نزدیک به Delphi می باشد.
ساختارهای زبان پاسکال در شکل اصلی خودش به طور خالص یک زبان رویه ای است و دارای آرایش سنتی الگول است که شبیه ساختارهای کنترل به همراه کلمات رزروشده همچون if,then,else,while,for و ...
می باشد.
با این حال پاسکال بسیاری امکانات ساخت یافته داده ای و انتزاعی را داراست که در الگول 60 اصلی موجود نبودند.
مانند تعاریف نوع ها، رکوردها، اشاره گرها، شمارش ها و مجموعه ها.
یک همچنین ساختار هایی تا یک اندازه از Simula 67 ،Algol 68، Algol W خود آقای Wirth و پیشنهادات C.A.R.
Hoare الهام گرفته شده و یا به ارث برده شدند.
Hello World برنامه های پاسکال توسط کلمه کلیدی Program به همراه لیستی از فایل های خارجی به عنوان پارامترها شروع می شوند.
سپس بلوک عبارت اصلی که توسط کلمات کلیدی Begin و End بسته بندی شده است را دنبال می کنند.
علامت semicolon (;) عبارات را از هم جدا می کند و نقطه آخر برنامه تمام برنامه را خاتمه می دهد.
در پاسکال، بزرگ و کوچکی حروف مطرح نیست.
بعضی کامپایلرها مثل توربو پاسکال در میان آنها کلمه کلیدی Program را اختیاری در نظر می گیرند.
در اینجا یک مثال از کد برای یک برنامه خیلی ساده آورده شده است.
در کلیسا وقتی در 1668 به درد دندان مبتلا شد، برای نجات از درد به ریاضیات پناه برد و در 8 روز کتابی درباره انتگرال ها و دیگر کشف های خودش نوشت (در سال 1659 رساله ای درباره محاسبات دیفرانسیلی نوشته بود).اوسرانجام در سال 1662 در گذشت.