اوبرون (زبان برنامه‌نویسی)

**اوبِرون** یک زبان برنامه‌نویسی عمومی است که اولین بار در سال ۱۹۸۷ توسط نیکلاوس ویرت منتشر شد و آخرین عضو خانواده زبان‌های شبیه الگول (یولر، ALGOL W، پاسکال، مادولا و مادولا-۲) می‌باشد. اوبرون نتیجه یک تلاش متمرکز برای افزایش قدرت مودولا-۲، جانشین مستقیم پاسکال، و در عین حال کاهش پیچیدگی آن است. ویژگی جدید اصلی آن مفهوم گسترش نوع داده از نوع‌های رکورد است. این، اجازه می‌دهد که نوع‌های داده‌ی جدیدی بر اساس نوع‌های موجود بسازیم و آن‌ها را به هم مرتبط کنیم، و از قاعده‌ی تایپ استاتیک سخت‌گیرانه داده منحرف شویم. گسترش نوع، راه ویرت برای به ارث بردن و انعکاس دیدگاه سایت پدر است. اوبِرون به عنوان بخشی از پیاده‌سازی یک سیستم‌عامل که آن نیز اوبِرون نام داشت، در ETH زوریخ در سوئیس توسعه یافت. نام این پروژه هم از تصاویر گرفته‌شده توسط کاوشگر فضایی وویجر از ماه سیاره اورانوس که اوبِرون نامیده می‌شود الهام گرفته شده و هم به این دلیل که اوبِرون به عنوان پادشاه الف‌ها مشهور است.

اوبرون توسط ویرت نگهداری می‌شد و آخرین به‌روزرسانی کامپایلر پروژه اوبرون در ۶ مارس ۲۰۲۰ انجام شده است.
## طراحی
اوبرون با شعاری که به آلبرت اینشتین نسبت داده شده طراحی شده است: "همه چیز را تا حد امکان ساده کنید، اما نه ساده‌تر." راهنمای اصلی، تمرکز بر ویژگی‌های پایه‌ای و ضروری و حذف مسائل گذرا بود. عامل دیگر، شناسایی رشد پیچیدگی در زبان‌هایی مانند C++ و ایدا بود. در مقابل، اوبرون بر استفاده از مفهوم کتابخانه برای گسترش زبان تأکید می‌کند. نوع‌های شمارشی و زیرمحدوده‌ای که در مودولا-۲ حضور داشتند حذف شدند و نوع‌های مجموعه به مجموعه‌هایی از اعداد محدود شدند. تمام آیتم‌های وارد شده باید توسط نام ماژولی که در آن‌ها اعلام شده‌اند، مشخص شوند. امکانات سطح پایین تنها با اجازه استفاده در ماژولی که شامل شناسه `'''SYSTEM'''` در لیست واردات آن است برجسته می‌شوند. بررسی نوع سختگیرانه، حتی در ماژول‌ها، بررسی شاخص در زمان اجرا، بررسی اشاره‌گر خالی و مفهوم گسترش نوع امن، تا حد زیادی برنامه‌نویسی را به قوانین زبان متکی می‌سازد.

هدف این استراتژی تولید زبانی بود که یادگیری آن آسان‌تر، پیاده‌سازی آن ساده‌تر و بسیار کارآمد باشد. کامپایلرهای اوبرون به عنوان فشرده و سریع ارزیابی شده‌اند، در حالی که کیفیت کد تولید شده قابل مقایسه با کامپایلرهای تجاری است.
## ویژگی‌ها
ویژگی‌های مشخص‌کننده زبان اوبِرون شامل موارد زیر است:
* سینتکس حساس به حروف بزرگ و کوچک با کلمات کلیدی بزرگ
* گسترش نوع با آزمون نوع
* ماژول‌ها و کامپایل جداگانه
* عملیات رشته‌ای
* جداسازی کدهای ناامن
* پشتیبانی از برنامه‌نویسی سیستم
## منابع
### کلی
* *[https://web.archive.org/web/20191219125640/http://www.ethoberon.ethz.ch/ Official website (latest available copy at archive org)]* at ETH-Zürich
* *[https://people.inf.ethz.ch/wirth/Oberon/ Niklaus Wirth's Oberon Page]* at ETH-Zürich
* *[https://www.ssw.uni-linz.ac.at/Research/Projects/Oberon.html Oberon Page]* at SSW, Linz
* *[https://www.mathematik.uni-ulm.de/oberon/reports/ Oberon: The Programming Language]* at Ulm
* *[http://people.inf.ethz.ch/wirth/ProjectOberon1992.pdf Project Oberon, The Design of an Operating System and a Compiler]*, book in PDF by Niklaus Wirth and Jürg Gutknecht, 2005 Edition
* *[https://web.archive.org/web/20130529020132/http://www.ethoberon.ethz.ch/genealogy.html Oberon Language Genealogy]*
* *[https://www.astrobe.com Astrobe]* ARM Oberon-07 Development System
* *[https://modulaware.com/mwovms.htm Oberon System V4 for HP OpenVMS Alpha]* with source code upward-compatible 64 bit addressing
* *[https://modulaware.com/mwcvms.htm 64 bit Oberon-2 compiler]* for OpenVMS Alpha
* *[https://spivey.oriel.ox.ac.uk/corner/Oxford_Oberon-2_compiler Oxford Oberon-2 Compiler]* and its User Manual
* *[https://github.com/rochus-keller/Oberon Free Oberon-07 IDE]* Free Oberon-07 IDE for Windows, Macintosh, and Linux with syntax colouring, semantic navigation and source code debugger
* *[https://www.drdobbs.com/architecture-and-design/the-oberon-programming-language/184409405 Oberon article by Joseph Templ]* in the January 1994 issue of Dr.Dobbs

### تکامل اوبرون
* *[https://people.inf.ethz.ch/wirth/Articles/Modula-Oberon-June.pdf Modula-2 and Oberon]* Wirth (2005)
* *[https://people.inf.ethz.ch/wirth/Oberon/Oberon.Report.pdf The Programming Language Oberon]* Wirth, (1988/90)
* *[https://people.inf.ethz.ch/wirth/Oberon/Oberon07.Report.pdf The Programming Language Oberon (Oberon-7, Revised Oberon)]* Wirth, (2016, most current language report)
* *[https://people.inf.ethz.ch/wirth/Oberon/Oberon07.pdf Differences between Oberon-07 and Oberon]* Wirth (2011)
* *[ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/Oberon2.Report.ps The Programming Language Oberon-2]* H. Mössenböck, N. Wirth, Institut für Computersysteme, ETH Zürich, January 1992
* *[ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/Oberon2.Differences.ps Differences between Oberon and Oberon-2]* Mössenböck and Wirth (1991)
* *[https://web.archive.org/web/20110515111149/http://www.oberon.ch/pdf/CP-New.pdf What's New in Component Pascal]* (Changes from Oberon-2 to CP), Pfister (2001)

## مرجع‌ها

رده:زبان‌های برنامه‌نویسی کلاس محور
رده:زبان‌های برنامه‌نویسی رویه‌ای
رده:زبان‌های برنامه‌نویسی ساخته‌شده در ۱۹۸۶ (میلادی)
رده:زبان‌های برنامه‌نویسی ایستا
رده:زبان‌های برنامه‌نویسی سیستمی