موضوع مقاله: COMAL | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # COMAL | مقدمه: کومال (زبان الگوریتمی رایج، به انگلیسی: COMAL) یک زبان برنامه‌نویسی کامپیوتر است که در دانمارک توسط بورگه آر. | ## بخش 1: COMAL | این زبان بر اساس زبان برنامه‌نویسی بیسیک طراحی شده بود و با اضافه کردن عبارات چندخطی و زیرروال‌های به خوبی تعریف‌شده، و دیگر افزوده‌ها، بهبود یافت. کومال در اصل برای مینی‌کامپیوترها نوشته شده بود، اما به اندازه کافی کوچک بود که بر روی میکروکامپیوترهای اولیه نیز اجرا شود. این یکی از معدود زبان‌های برنامه‌نویسی ساخت‌یافته است که برای کامپیوترهای خانگی ۸ بیتی قابل دسترسی و استفاده راحت بود. از کریستنسن که دوره کوتاهی از این مبحث را در دانشگاه گذرانده بود، انتظار می‌رفت که برنامه را رهبری کرده و سیستم کامپیوتری را نگهداری کند. به دنبال شکایت از این مشکلات به دانشمند علوم کامپیوتر، بندیکت لوفستد، او کریستنسن را تشویق کرد تا کتاب برنامه‌نویسی سیستماتیک، کتاب جدید آن زمان در زمینه طراحی زبان‌های برنامه‌نویسی، نوشته نیکلاوس ورت، خالق پاسکال را بخواند. کریستنسن تحت تأثیر قرار گرفت، اما متوجه شد که نمی‌تواند به‌طور مستقیم از پاسکال استفاده کند، زیرا پاسکال فاقد پوسته تعاملی بود که بیسیک را برای دانش‌آموزان در توسعه کد آسان می‌کرد. طی شش ماه بعدی، کریستنسن و لوفستد از طریق نامه‌نگاری به طراحی یک زبان جایگزین برای بیسیک پرداختند که عناصر تعاملی آن را حفظ کرده و عناصر ساختاریافته از پاسکال را اضافه کند. تا سال ۱۹۷۴، تعریف زبان کامل شد اما کریستنسن موفق نشد علاقه‌مندی شرکت‌های نرم‌افزاری را برای توسعه پیاده‌سازی آن جذب کند. در شش ماه بعدی، او با دو نفر از دانش‌آموزان خود که به آنها زبان ماشین NOVA 1200 را آموزش داده بود، کار کرد تا خودشان یک پیاده‌سازی را بنویسند. یکی از اولین ویژگی‌های اضافه شده، امکان استفاده از نام‌های متغیر هشت‌حرفی بود که از یک یا دو حرف معمول بیشتر بود. | ## بخش 2: COMAL | افزوده‌های بعدی در نسخه اول شامل عبارات چندخطی و تعاریف و دستور برای فراخوانی آنها بود. اولین پیاده‌سازی اثبات مفهوم (اجرای یک حلقه پنج‌خطی) در ۵ اوت ۱۹۷۴ آماده شد و اولین نسخه (روی نوار کاغذی) در فوریه ۱۹۷۵ تهیه شد. تنها در این زمان بود که سیستم (که قبلاً از یک نام داخلی دانمارکی استفاده می‌کرد) نام کومال، به معنی زبان الگوریتمی رایج، را به الهام از ALGOL گرفت، که کریستنسن با آن آزمایش انجام می‌داد. کریستنسن سپس یک کتاب آموزشی در مورد این زبان نوشت که به آغاز کومال نام‌گذاری شد. نسخه‌های میکروکامپیوتر در سال ۱۹۷۸، کریستنسن شروع به تطبیق کومال کرد تا بتواند روی میکروکامپیوترهایی که در دسترس قرار گرفته بودند اجرا شود. او نگران بود که بدون چنین پیاده‌سازی‌ای، مجبور شود دوباره به تدریس و استفاده از بیسیک روی آورد، چرا که مدارس دانمارک ماشین‌های جدید را تهیه می‌کردند. تا سال ۱۹۸۰، نسخه‌ای از کومال که با همکاری یک گروه دانشکده توسعه یافته بود، قادر به اجرا روی Zilog Z80 شد و به این ترتیب، کومال ۸۰ منتشر گردید. در همان زمان، یک شرکت دانمارکی کامپیوتر Comet را معرفی کرد، که در آن زمان یک میکروکامپیوتر بسیار توانمند بود و نیز اولین دستگاهی بود که نسخه‌ای از کومال را اجرا می‌کرد که شبیه به نسخه‌های بعدی آن بود. کریستنسن سپس در حدود سال‌های ۱۹۸۰-۸۱ از توسعه کومال کناره‌گیری کرد و توسعه به گروه‌هایی از جمله UniComal، که توسط موگنس کایر تأسیس شده بود، واگذار گردید. موگنس کایر به کریستنسن نامه‌ای حاوی نقدهایی از کومال نوشته بود و سپس آن را برای نسخه 0.14 به کامودور PET منتقل کرد. | ## بخش 3: COMAL | در این زمان، مدارس دانمارک اصرار داشتند که کومال روی هر میکروکامپیوتری که خریداری می‌کردند، در دسترس باشد. نسخه ارتقاءیافته‌ای از COMAL به عنوان زبان برنامه‌نویسی استاندارد برای این کامپیوتر ارائه شد. در سال ۱۹۹۰، توماس لاندی و روری او سالیوان متن نهایی در مورد برنامه‌نویسی COMAL را تهیه کردند. تا سال ۲۰۱۶، COMAL هنوز به عنوان یک زبان برنامه‌نویسی آموزشی به طور فعال استفاده می‌شود. برخی دبیرستان‌های بریتانیا همچنان از آن برای آموزش موضوع رایانش استفاده می‌کنند. توضیحات COMAL به عنوان ترکیبی از زبان‌های برنامه‌نویسی آموزشی رایج در آن زمان همانند بیسیک، پاسکال و حداقل در نسخه‌های کامودور و کامپیس و گرافیک لاک‌پشتی لوگو ایجاد شد. این زبان برای معرفی عناصر برنامه‌نویسی ساخت‌یافته در محیطی که معمولاً از بیسیک استفاده می‌شد، طراحی شده بود. علاوه بر این، برای درک این که در این حالت چه اتفاقی می‌افتد، خواننده باید خط 50 را پیدا کند که در برنامه‌های واقعی ممکن است در کد منبع بسیار دورتر باشد. این یکی از دلایل اصلی است که برنامه‌های بیسیک به عنوان "کد اسپاگتی" شناخته می‌شوند، زیرا برای دنبال کردن منطق باید در برنامه جابجا شد، مانند دنبال کردن مجموعه‌ای از رشته‌های تصادفی اسپاگتی. | ## جمع‌بندی | این کار با استفاده از فاصله‌های پیشرو COMAL برای نشان دادن بصری بلوک‌ها تسهیل می‌شود.