1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

پیاده سازی اولین کامپایلر پاسکال

شروع موضوع توسط minaaa ‏3/9/13 در انجمن Pascal

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    [h=2][/h] اولین کامپایلر پاسکال برای سری 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 می‌باشد.