سلام دوستان
لیست زبانهای برنامهنویسی رو که نگاه میکردم دومین زبان بزرگ بعدی از لحاظ الفبایی زبان الگول بود. البته این توضیح رو باید اضافه کنم که تعدد زبانهای برنامهنویسی زیاد هست ولی برخی از اونا محدوده کاربرد یا استفاده محدودی داشتهاند و خیلی فراگیر نشدهاند که از نوشتن در مورد اونا صرف نظر میکنیم.
الگول گرچه امروزه یک زبان مرده به حساب میاد ولی از این جهت مهم هست که در زمان خودش نسبت به سایر زبانهای برنامهنویسی هم دوره خودش مثل فرترن، کوبول، لیسپ و غیره برتریها و سبک متفاوتی رو داشته و خیلی شبیه به زبانهای برنامهنویسی رایج امروزی بوده. البته این مطلب برعکس باید گفته بشه: زبانهای برنامهنویسی رایج امروزی خیلی از الگول تاثیر پذیرفتهاند. اصلا از دلایل به وجود آمدن این زبان برطرف کردن نقاط نقص فرترن بود.
الگول یا ALGOL در واقع مخفف Algorithmic Language هست و طبق نام و سبک برنامهنویسی خاص خودش تاثیر زیادی در نوشتن یا نمایش الگوریتم ها داشته به طوری که طی سالها الگوریتم ها را با سبک این زبان نشان میدادند. این زبان به خاطر برخی نواقص مانند استاندارد نبودن امکانات ورودی و خروجی هیچ وقت فراگیر نشد و تا حدودی استفاده از اون به مراکز خاص تحقیقاتی و آزمایشگاهی و توسط دانشمندان محدود بود. البته این رو هم باید مد نظر داشت که در زمان خودش یعنی حدودا دهه ۱۹۶۰ میلادی، کامپیوترها هم مثل امروز اینقدر فراگیر نبودهاند و استفاده از آنان در همان مراکز خاص بوده است.
در زیر نمونه کد برای نوشتن Hello World رو مشاهده میکنید:
// the main program (this is a comment)
BEGIN
FILE F (KIND=REMOTE);
EBCDIC ARRAY E [0:11];
REPLACE E BY "HELLO WORLD!";
WHILE TRUE DO
BEGIN
WRITE (F, *, E);
END;
END.
همانطور که در کد مشخص شده به نظر میرسد که پیام در یک فایل نوشته میشود ولی در واقع در ترمینال نوشته میشود که به احتمال زیاد صفحه نمایش هست. همان مشکل وروری و خروجی اینجا خودش را نشان میدهد. این کد میتواند به شکلهای زیر هم نوشته شود:
BEGIN
FILE F(KIND=REMOTE);
WRITE(F, <"HELLO WORLD!">);
END.
یا به صورت خیلی ساده:
BEGIN DISPLAY("HELLO WORLD!") END.
این نمونهها همان مشکل ذکر شده در قبل و تفاوت محیطها و کامپایلرهای مختلف را نشان میدهد. تمام این کدها در نسخهای از الگول 60 نوشته شده که رایجترین نسخه از الگول میباشد. به طور کلی الگول دارای نسخههای زیر است:
- - الگول 58: در ابتدا ILA نامیده شد که مخفف شده International Algebraic Language بود ولی طولی نکشید که با نسخه بعدی جایگزین شد.
- - الگول 60: رایج ترین الگول که در سال 1961 نوشته و در 1963 اصلاح شد. بیشتر کامپایلرها پیادهسازی شده این نسخه بودند.
- - الگول 68: امکانات جدید مانند آرایه ها یا موازی کاری اضافه شد ولی چون نسبت به الگول 60 خیلی فرق کرده بود زیاد ازش استقبال نشد. البته شاید هم یک دلیل این بود که زبانهای دیگه هم مطابق با الگول خودش رو تطبیق داده بودند و دیگه ارزش نداشت که الگول 68 را با این همه تغییرات پذیرفت!
- کد زیر یک نمونه از کد الگول 68 هست:
begin
printf(($gl$,"Hello, world!"))
end
این کد بخصوص printf آدم رو به یاد زبان C میاندازه و به همین خاطر خیلی متفاوت به نظر میرسید.
یکی از مشخههای الگول بلوکها بودند. در قدیم قسمتهای کد به وسیله Goto از هم جدا میشدند. به عبارت دیگه اجرا به یک قسمت از کد وارد میشد و در انتهای قسمت با یک Goto دیگر به جای اول که فراخوانی شده بود برمیگشت. یکی از ابتکارات به کار گرفته شده در الگول بلوکهای کد بود که استفاده از Goto را خیلی کم میکرد و نظم و انضباط خاصی به کدها میداد.
به هر حال این زبان برنامهنویسی بود که در زمان خودش از زبانهای دیگه خیلی جلوتر بود و مورد علاقه خیلی از برنامهنویسان قرار گرفت و سرمشقی برای توسعه زبانهای برنامهنویسی آینده شد که امروز با آنها سرو کار داریم.
امیدوارم تونسته باشم اطلاعات مفید و مختصری رو راجع به این زبان گفته باشم. هدف این بود که به صورت خیلی کلی با این زبان تاثیرگذار آشنا بشیم.
زبان برنامهنویسی بررسی شده قبلی: زبان برنامه نویسی Ada