اوبرون (زبان برنامهنویسی)
اوبِرون یک زبان برنامهنویسی عمومی است که اولین بار در سال ۱۹۸۷ توسط نیکلاوس ویرت منتشر شد و آخرین عضو خانواده زبانهای شبیه الگول (یولر، ALGOL W، پاسکال، مادولا و مادولا-۲) میباشد.[۱][۲][۳][۴] اوبرون نتیجه یک تلاش متمرکز برای افزایش قدرت مودولا-۲، جانشین مستقیم پاسکال، و در عین حال کاهش پیچیدگی آن است. ویژگی جدید اصلی آن مفهوم گسترش نوع داده از نوعهای رکورد است.[۵] این، اجازه میدهد که نوعهای دادهی جدیدی بر اساس نوعهای موجود بسازیم و آنها را به هم مرتبط کنیم، و از قاعدهی تایپ استاتیک سختگیرانه داده منحرف شویم. گسترش نوع، راه ویرت برای به ارث بردن و انعکاس دیدگاه سایت پدر است. اوبِرون به عنوان بخشی از پیادهسازی یک سیستمعامل که آن نیز اوبِرون نام داشت، در ETH زوریخ در سوئیس توسعه یافت. نام این پروژه هم از تصاویر گرفتهشده توسط کاوشگر فضایی وویجر از ماه سیاره اورانوس که اوبِرون نامیده میشود الهام گرفته شده و هم به این دلیل که اوبِرون به عنوان پادشاه الفها مشهور است.[۶]
اوبرون توسط ویرت نگهداری میشد و آخرین بهروزرسانی کامپایلر پروژه اوبرون در ۶ مارس ۲۰۲۰ انجام شده است.[۷]
طراحی
[ویرایش]اوبرون با شعاری که به آلبرت اینشتین نسبت داده شده طراحی شده است: "همه چیز را تا حد امکان ساده کنید، اما نه سادهتر." راهنمای اصلی، تمرکز بر ویژگیهای پایهای و ضروری و حذف مسائل گذرا بود. عامل دیگر، شناسایی رشد پیچیدگی در زبانهایی مانند C++ و ایدا بود. در مقابل، اوبرون بر استفاده از مفهوم کتابخانه برای گسترش زبان تأکید میکند. نوعهای شمارشی و زیرمحدودهای که در مودولا-۲ حضور داشتند حذف شدند و نوعهای مجموعه به مجموعههایی از اعداد محدود شدند. تمام آیتمهای وارد شده باید توسط نام ماژولی که در آنها اعلام شدهاند، مشخص شوند. امکانات سطح پایین تنها با اجازه استفاده در ماژولی که شامل شناسه SYSTEM
در لیست واردات آن است برجسته میشوند. بررسی نوع سختگیرانه، حتی در ماژولها، بررسی شاخص در زمان اجرا، بررسی اشارهگر خالی و مفهوم گسترش نوع امن، تا حد زیادی برنامهنویسی را به قوانین زبان متکی میسازد.
هدف این استراتژی تولید زبانی بود که یادگیری آن آسانتر، پیادهسازی آن سادهتر و بسیار کارآمد باشد. کامپایلرهای اوبرون به عنوان فشرده و سریع ارزیابی شدهاند، در حالی که کیفیت کد تولید شده قابل مقایسه با کامپایلرهای تجاری است.[۸]
ویژگیها
[ویرایش]ویژگیهای مشخصکننده زبان اوبِرون شامل موارد زیر است:[۹]
- سینتکس حساس به حروف بزرگ و کوچک با کلمات کلیدی بزرگ
- گسترش نوع با آزمون نوع
- ماژولها و کامپایل جداگانه
- عملیات رشتهای
- جداسازی کدهای ناامن
- پشتیبانی از برنامهنویسی سیستم
منابع
[ویرایش]کلی
[ویرایش]- Official website (latest available copy at archive org) at ETH-Zürich
- Niklaus Wirth's Oberon Page at ETH-Zürich
- Oberon Page at SSW, Linz
- Oberon: The Programming Language at Ulm
- Project Oberon, The Design of an Operating System and a Compiler, book in PDF by Niklaus Wirth and Jürg Gutknecht, 2005 Edition
- Oberon Language Genealogy
- Astrobe ARM Oberon-07 Development System
- Oberon System V4 for HP OpenVMS Alpha with source code upward-compatible 64 bit addressing
- 64 bit Oberon-2 compiler for OpenVMS Alpha
- Oxford Oberon-2 Compiler and its User Manual
- Free Oberon-07 IDE Free Oberon-07 IDE for Windows, Macintosh, and Linux with syntax colouring, semantic navigation and source code debugger
- Oberon article by Joseph Templ in the January 1994 issue of Dr.Dobbs
تکامل اوبرون
[ویرایش]- Modula-2 and Oberon Wirth (2005)
- The Programming Language Oberon Wirth, (1988/90)
- The Programming Language Oberon (Oberon-7, Revised Oberon) Wirth, (2016, most current language report)
- Differences between Oberon-07 and Oberon Wirth (2011)
- The Programming Language Oberon-2 H. Mössenböck, N. Wirth, Institut für Computersysteme, ETH Zürich, January 1992
- Differences between Oberon and Oberon-2 Mössenböck and Wirth (1991)
- What's New in Component Pascal (Changes from Oberon-2 to CP), Pfister (2001)
مرجعها
[ویرایش]- ↑ Wirth, Niklaus (1987). From Modula to Oberon and the programming language Oberon (Report). ETH Technical Reports D-INFK. Vol. Band 82. Wiley. doi:10.3929/ethz-a-005363226.
- ↑ Wirth, Niklaus (July 1988). "The Programming Language Oberon". Software: Practice and Experience. 18 (7): 661–670. doi:10.1002/spe.4380180707.
- ↑ Wirth, Niklaus (July 1988). "From Modula to Oberon". Software: Practice and Experience. 18 (7): 671–690. doi:10.1002/spe.4380180706. S2CID 13092279.
- ↑ Wirth, Niklaus (April 1988). "Type Extensions". ACM Transactions on Programming Languages. 10 (2): 204–214. doi:10.1145/42190.46167. S2CID 15829497.
- ↑ Pountain, D. March 1991. "Modula's Children, Part II: Oberon". Byte. Vol. 16, no. 3. pp. 135–142.
- ↑ Wirth, Niklaus; Gutknecht, Jürg (1987–2021). "Project Oberon" (PDF).
- ↑ Wirth, Niklaus. "Oberon Change Log". ETH Zurich. Retrieved 16 January 2021.
- ↑ Mössenböck, Hanspeter. "Compiler Construction: The Art of Niklaus Wirth" (PDF). Johannes Kepler University.[پیوند مرده]
- ↑ Wirth, Niklaus; Gutknecht, Jürg (1987–2021). "Project Oberon".