الگول۶۸

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
ALGOL 68
پارادایم(ها) multi-paradigm: concurrent, imperative
طراحی‌شده توسط A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck and C.H.A. Koster, et al.
ظهور در Report: 1968r0
انتشار پایدار Algol 68/RR / Revised Report: 1973r1
نظم تایپ static, strong, safe, structural
پیاده‌سازی‌های بزرگ الگول ۶۸ سی, ALGOL 68G (recent), ALGOL 68R, ALGOL 68RS, ALGOL 68S, FLACC, Алгол 68 Ленинград/Leningrad Unit، Odra ALGOL 68
گویش‌ها ALGOL 68/FRr0
تأثیرگرفته از الگول ۶۰, ALGOL Y
تأثیرگذاشته بر

C {{|Influence on C: types, structures, arrays, pointers and procedures - Dennis Ritchie"/>}} {{|Influence on C: union, structure, syntax and long precision - Dennis Ritchie "/>}}, C++,[۱] پوسته بورن, Bash, Steelman, Ada, Python,[۲] Seed7,

Mary, S3

الگول۶۸ یک زبان برنامه‌نویسی دستوری کامپیوتر است که به عنوان جانشین زبان الگول ۶۰ که با هدف بزرگتر کردن محدوده و دقت بیشتر در معنی و نحو برنامه‌ها تصور می‌شد. الگول ۶۸ برگرفته از واژه‌های انگلیسی ALGOrithmic Language 1968 به معنای «زبان الگوریتمی» است.

سهم زبان الگول در علوم کامپیوتر بسیار گسترده است اگرچه برخی از مفاهیم آن تا وقتی که به صورت عمومی به شکل دیگری در خیلی از زبان‌های توسعه یافتهٔ بعد از الگول استفاده شد شناخته نشدند

مرور[ویرایش]

بخش‌های الگول ۶۸ شامل نحو عبارت محور، تایپ دهی و ساختارهای اعلام شده توسط کاربر،ساختار ها و یونیون‌های برچسب دار، مدل مرجع متغیرها و پارامترها، رشته، آرایه، ماتریس برش و حتی همزمانی.

زبان الگول به طور رسمی توسط [[[:w:en:IFIP Working Group 2.1|گروه کاری 2.1 IFIP]]] در بیستم دسامبر سال ۱۹۶۸ ساخته شد و پس از آن برای انتشار در مجمع عمومی IFIP تایید شد.

زبان الگول بااستفاده از فرم گرامر دو سطحی تعریف شده که توسط [[[:w:en:Adriaan van Wijngaarden|آدرین ون ویجن گاردن]]] اختراع شد گرامر ون ویجن گاردن از یک گرامر مستقل از متن برای تولید مجموعهٔ نا متناهی از محصولات که یک برنامهٔ خاص الگول ۶۸ را می‌شناسد استفاده می‌کند آن‌ها توانایی بیان انواع نیازها که در استاندارد بسیاری از زبان‌های برنامه نویسی به عنوان معنا برچسب گذاری شده‌اند و باید در متن زبان طبیعی مستعد ابهام بیان شوند.

اهداف اصلی و منظم طراحی الگول ۶۸:

  1. کامل و واضح بودن نسخه
  2. طراحی متعامد
  3. امنیت
  4. بازده
  5. چک کردن حالت ایستا
  6. تجزیهٔ مستقل از حالت
  7. ترکیب مستقل
  8. بهینه سازی حلقه‌ها
  9. نمایش با مجموعه‌هایی با کاراکترهای کمتر و بزرگتر

زبان الگول ۶۸ پیشتر توسط اعضای گروه طراحی آن مثل [دیسترا ادسخر دیسترا] و [هور تونی هور] برای از بین بردن سادگی زبان الگول 60 و تبدیل شدن به وسیله ای برای ایده های پیچیده و یا بیش از حد عمومی و انجام نشدن هیچ تلاشی برای ساده کردن کار [کامپایلر] نویس (دقیقاً بر خلاف کار هایی که رقیبان زبان الگول یعنی سی و پاسکال انجام داده‌اند)مورد انتقاد واقع شده است.

در سال 1970 نخستین کامپایلر برای زبان الگول ساخته شد.این کامپایلر ALGOL 68R نام داشت.

عناصر مهم زبان[ویرایش]

کلمات رزرو شده ی الگول: در این زبان 61 دستور و کلمه ی رزرو شده وجود دارد:

mode, op, prio, proc,
flex, heap, loc, long, ref, short,
bits, bool, bytes, char, compl, int, real, sema, string, void,
channel, file, format, struct, union,
of "→", at "@", is ":=:", isnt ":/=:", true, false, empty, nil "○", skip "~",
co "¢", comment "¢", pr, pragmat,
case ~ in ~ ouse ~ in ~ out ~ esac "( ~ | ~ |: ~ | ~ | ~ )",
for ~ from ~ to ~ by ~ while ~ do ~ od,
if ~ then ~ elif ~ then ~ else ~ fi "( ~ | ~ |: ~ | ~ | ~ )",
par begin ~ end "( ~ )", go to, goto, exit "□".

واحد ها: عبارات ساده ترین قسمت سازنده ی زبان واحد ها(به انگلیسی : unit)هستند.واحدها می توانند یک رابطه،یک عبارت بسته،یک روتین یا یکی از دستورات ساختاری زبان (مثل تخصیص مقدار یا پرش شرطی) باشد.قسمت فنی و اساسی یک عبارت بسته برخی از ساختار ها مثل بلوک،ساختار do و ساختار switch را که در زبان های معاصر بودند را یکپارچه می کند.وقتی یک کلمه ی کلیدی استفاده می شود معمولاً کاراکتر معکوس رشته برای معرفی کلمه ی ورودی و خاتمه دادن به عبارت بسته استفاده می شود(مانند 'if' ~ then ~ else ~ 'fi', 'case' ~ in ~ out ~ 'esac', for ~ while ~ 'do' ~ 'od'). این ویژگی توسط استفان بورن برای پوسته ی بورن یونیکس دوباره استفاده شد.

حالت ها:اعلام تایپ داده ی ابتدایی (در الگول ۶۸ mode نامیده می شود ) حقیقی،صحیح،مختلط،بول،کاراکتر،بیت و بایت هستند.برای مثال:

int n = 2;
co n is a fixed as a constant of 2. co
int m := 3;
co m is a newly created local variable whose value is initially set to 3. co
co    This is short for ref int m = loc int := 3 co;
real avogadro = 6.0221415⏨23; co Avogadro's number co
long long real long long pi = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510;
compl square root of minus one = 0 ⊥ 1;

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  • ویکی‌پدیای انگلیسی
  1. "A History of C++: 1979−1991" (PDF). March 1993. Retrieved May 6, 2008.  Unknown parameter |text= ignored (help)
  2. "Interview with Guido van Rossum". July 1998. Archived from the original on 1 May 2007. Retrieved April 29, 2007. 

پیوند به بیرون[ویرایش]