استاندارد، زبان طراحی شده توسط برتراند میر (طرفداران و نویسنده از ساخت نرم‌افزار شیء گرا) و نرم‌افزار طراحی شده‌است. طراحی در این زبان است که به دقت با استفاده از روش برنامه‌نویسی متصل شده‌است. هر دو بر اساس مجموعه‌ای از اصول طراحی شده، از جمله توسط قرارداد، جداسازی به دستور پرس و جو، دسترسی یکنواخت به اصل، ، اصل باز و بسته، و گزینه عملوند جدایی بسیاری از مفاهیم در ابتدا معرفی شده توسط بعد راه خود را به جاوا، C # و زبان‌های دیگر را، دربرداشت. ایده‌های طراحی زبان جدید، به ویژه از طریق فرایند استانداردسازی صورت پرفت.
 ویژگی‌های کلیدی از زبان ایفل عبارتند از:
 ساختار شی گرا، برنامه‌ای است که در آن یک کلاس به عنوان واحد اصلی تجزیه می‌باشد.
طراحی شده توسط قرارداد محکم با ساختارهای زبان‌های دیگر یکپارچه شده‌است.
 خودکار، به‌طور معمول با جمع‌آوری زباله اجرا شده‌است.
 توارث، از جمله ارث بری چندگانه، تغییر نام، تعریف، ""، عدم انطباق ارث، و مکانیزم‌های دیگر در نظر گرفته شده را به ارث امن را انتخاب کنید.
 برنامه‌نویسی عمومی محدود و غیراجباری
 یک یکسان از دست زدن به هر دو ارزش و معانی مرجع که در آن همه نوع شامل انواع پایه مانند INTEGER، مبتنی بر کلاس.
 نوع دهی استاتیک از درجه اعتبار ساقط ایمنی، یا استاتیک حفاظت در برابر تماس در مراجع تهی، از طریق مکانیسم‌های پیوست شده نوع در Effel می‌باشد.
 عوامل، یا اشیاء است که محاسبات کردن، از نزدیک لامبدا متصل است.
هنگامی که روال: روال ارزیابی تنها یک بار، برای به اشتراک گذاری شی و غیر متمرکز است.
کلید واژه مبتنی بر نحو در زبان الگول / پاسکال سنت اما جدا، تا آنجا که اختیاری هستند، با نحو اپراتور در دسترس برای روال.
 کوردلی مورد ساده و همزمان برنامه‌نویسی شی گرا (حرکت شبیه چمچه زنی) را تسهیل ایجاد چندگانه، اعدام همزمان فعال در یک سطح انتزاع بالاتر از جزئیات خاص از این وسایل نقلیه (به عنوان مثال چندین موضوعات بدون مدیریت mutexهای خاص).
 بر اظهارات اخباری در مورد کد رویه و تلاش برای از بین بردن نیاز به دستورالعمل‌های حسابداری.
Eiffel shuns حقه‌های برنامه‌نویسی یا تکنیک‌های برنامه‌نویسی در نظر گرفته شده به عنوان نکات برای کامپایلر. هدف این است که نه تنها به کد قابل خواندن است، اما همچنین به برنامه نویسان اجازه می‌دهد تا بر روی جنبه‌های مهم یک برنامه بدون نیاز به تمرکز در جزئیات پیاده‌سازی پرداخت. سادگی در نظر گرفته شده‌است برای ترویج پاسخ ساده، توسعه، قابل استفاده مجدد و قابل اعتماد است به مشکلات محاسبات پرداخت. کامپایلرها برای برنامه‌های کامپیوتری نوشته شده در ارائه تکنیک‌های بهینه‌سازی گسترده مانند خودکار در پوشش، که به از بین بردن برنامه‌نویس بخشی از بار بهینه‌سازی در حالی که که کارایی قابل مقایسه است. کد زمینه نوشته شده توسط
 نرم‌افزار، یک شرکت تأسیس شده توسط برتراند مایر شد. ساخت نرم‌افزار شیء گرا شامل یک درمان دقیق از مفاهیم و تئوری تکنولوژی شی که منجر به طراحی است.
 Eiffel نوشته شده توسط نرم‌افزار، یک شرکت تأسیس شده توسط برتراند مایر شد. ساخت نرم‌افزار شیء گرا شامل یک درمان دقیق از مفاهیم و تئوری تکنولوژی شی که منجر به طراحی Eiffel
 هدف طراحی پشت زبان ایفل، کتابخانه‌ها، و روش‌های برنامه‌نویسی است که برای فعال کردن برنامه نویسان برای ایجاد ماژول‌های نرم‌افزار قابل اعتماد، قابل استفاده مجدد. ایفل: ، genericity، پلی مورفیسم، یگدیگر، تبدیل نوع امن، و کوواریانس پارامتر پشتیبانی می‌باشد. مهم‌ترین ایفل سهم به طراحی شده توسط قرارداد (DbC)، که در آن اظهارات، پیش شرط، شرایط ارسال، و ویژگی‌های کلاس برای کمک به اطمینان از صحت برنامه بدون فدا کردن است.
 طراحی در نظریه‌های برنامه‌نویسی شی گرا، با نفوذ تنها جزئی از پارادایم دیگر یا نگرانی برای حمایت از میراث کد. به‌طور رسمی پشتیبانی از انواع داده انتزاعی است. بر اساس طراحی ایفل، یک متن نرم‌افزار باید قادر به تکثیر مستندات طراحی خود را از متن خود را، با استفاده از یک پیاده‌سازی رسمی از «نوع مقاله داده» است..
 EiffelStudio یک موجود در هر دو یا یک مجوز تجاری است. این ارائه می‌دهد یک محیط شی گرا برای مهندسی نرم‌افزار می‌باشد. EiffelEnvision یک پلاگین در است که اجازه می‌دهد تا به کاربران برای ویرایش، کامپایل، و عیب یابی پروژه‌های انجام شده از درون مایکروسافت ویژوال استودیو IDE. EiffelStudio و EiffelEnvision برای استفاده غیر تجاری رایگان هستند. چهار پیاده‌سازی منبع باز در دسترس عبارتند از: «ایفل کامپایلر» tecomp, Gobo ایفل، SmartEiffel اجرای GNU، بر اساس نسخه قدیمی تر از زبان و ویژوال ایفل.
 بسیاری از زبان‌های برنامه‌نویسی دیگر ترکیب عناصر برای اولین بار در معرفی شده‌است. Sather، به عنوان مثال، در اصل بر روی بر اساس، اما از آن زمان تاکنون انشعاب، و در حال حاضر شامل چندین ویژگی است. آموزش تعاملی زبان آبی، پیشرو از BlueJ، همچنین ایفل مبتنی بر. ابزار رسانه‌ای اپل شامل مبتنی بر زبان رسانه‌ای اپل است.
 طراحی در نظریه‌های برنامه‌نویسی شی گرا، با نفوذ تنها جزئی از پارادایم دیگر یا نگرانی برای حمایت از میراث کد. به‌طور رسمی پشتیبانی از انواع داده انتزاعی است. بر اساس طراحی ایفل، یک متن نرم‌افزار باید قادر به تکثیر مستندات طراحی خود را از متن خود را، با استفاده از یک پیاده‌سازی رسمی از «نوع مقاله داده» است.
 تعریف زبان ISO است. تحلیل، طراحی و برنامه‌نویسی زبان: این استاندارد توسط ECMA بین‌المللی، که برای اولین بار استاندارد در ۲۱ ژوئن سال ۲۰۰۵ به عنوان استاندارد تأیید شد و ECMA-367، توسعه داده شد. در ماه ژوئن سال ۲۰۰۶، ECMA و ISO را تصویب نسخه دوم است. در نوامبر ۲۰۰۶، ISO برای اولین بار منتشر شده که نسخه این استاندارد را می‌توان یافت.
 ایفل نرم‌افزار را EiffelStudio 6.1 و «Eiffel کامپایلر» tecomp اجرای برخی از مکانیسم عمده جدید، خاص، عوامل درون خطی، دستورات assigner، نرم‌افزار Eiffel، «ایفل کامپایلر» tecomp و ایفل، کتابخانه، توسعه دهنده Gobo اند که به اجرای استاندارد متعهد علامت کروشه، ارث، غیر انطباق و انواع فایل‌های پیوست شده. تیم SmartEiffel دور از این استاندارد را تبدیل و به زبان نسخه خود، که آن‌ها باور دارند که نزدیک به سبک اصلی است. ابزارهای شی گرا که اعلام نشده، آیا نسخه‌های آینده از کامپایلر ایفل خود را منطبق با آن استاندارد ساخته‌اند.
 مشخصات زبان این استاندارد به نقل از سلف به شرح زیر است:
 برتراند مایر: Eiffel: زبان، شاگردی هال، چاپ دوم، ۱۹۹۲ (چاپ اول: ۱۹۹۱)
برتراند مایر: استاندارد ایفل (ویرایش‌های قبل از ورود)، در حال انجام، در حال حاضر ۱۹۹۷-در صفحه ETL3 برتراند مایر، و
برتراند مایر: ساخت نرم‌افزار شیء گرا، شاگردی هال: چاپ اول، ۱۹۸۸، چاپ دوم، ۱۹۹۷.
برتراند مایر: لمس کلاس: آموزش به برنامه با هدف و قراردادهای اسپرینگر ورلاگ، 2009 lxiv + ۸۷۶ صفحه کامل رنگ، چاپ، عکس‌های رنگی متعدد
نسخه فعلی استاندارد را از ژوئن سال ۲۰۰۶ شامل برخی از تناقضات (به عنوان مثال covariant redefinitions). کمیته ECMA هنوز رتبهدهی نشده‌است اعلام کرد هر گونه جدول زمانی و جهت در مورد چگونه به حل و فصل تناقضات است.
 Eiffel «سیستم» یا «برنامه» مجموعه‌ای از کلاس‌ها است. بالاتر از سطح کلاس، تعریف خوشه، که در اصل گروهی از کلاس‌ها، و احتمالاً از subclusters (خوشه‌های تودرتو). خوشه‌ها ساختار نحوی زبان، بلکه یک قرارداد استاندارد سازمانی نیست. به‌طور معمول یک برنامه با هر کلاس را در یک فایل جداگانه، و هر خوشه در یک دایرکتوری که شامل فایل‌های کلاس سازمان یافته‌است. در این سازمان، subclusters زیرشاخه هستند. به عنوان مثال، تحت کنوانسیون‌های سازمانی استاندارد و پوشش، XE ممکن است نام یک فایل است که تعریف یک کلاس fh نام X فراخوانی شود.
 کلاس شامل ویژگی‌ها، که شبیه به «روال»، «کاربران»، «ویژگی» یا «روش» در دیگر زبان‌های برنامه‌نویسی شی گرا است. کلاس نیز تعریف ویژگی‌های خود را دارد، و حاوی خواص دیگر، از قبیل «یادداشت» بخش اسناد و ابرداده است. ایفل انواع داده استاندارد، از جمله به عنوان ، رشته و آرایه، خود کلاس هستند.
 هر سیستم باید یک کلاس تعیین شده به عنوان «ریشه»، با یکی از روش‌های ایجاد آن به عنوان «روش ریشه» تعیین کند. اجرای سیستم شامل ایجاد یک نمونه از کلاس ریشه و اجرای روش ریشه‌ای آن است. به‌طور کلی، انجام این کار ایجاد اشیاء جدید، ویژگی‌های جدید را فرا می‌خواند، و به همین ترتیب.
 دارای پنج دستورالعمل اجرایی پایه: تخصیص، ایجاد شی، تماس معمول، شرایط، و تکرار می‌کند. ساختارهای کنترل دقیق در اجرای : هر بلوک دقیقاً یک ورود و دقیقاً یک خروجی دارد.
 بر خلاف بسیاری از زبان‌های شی گرا، اما مانند اسمالتاک، اجازه نمی‌دهد هیچ انتساب به زمینه از اشیاء، جز در ویژگی‌های یک شی است که کاربرد عملی اصل پنهان کردن اطلاعات یا ، که نیاز به رابط‌های رسمی برای جهش. برای قرار دادن آن در زبان از دیگر زبان‌های برنامه‌نویسی شی گرا، تمام زمینه ایفل "private" و "setters" مورد نیاز برای تغییر ارزش‌ها هستند. نتیجه این است که "setters" می‌تواند است، و به‌طور معمول انجام دهید، پیاده‌سازی ویژگی‌های که برای فراهم نحو.
در حالی که دسترسی مستقیم به ویژگی‌های یک کلاس توسط یک مشتری از کلاس اجازه نمی‌دهد، آن را اجازه می‌دهد برای تعریف از "فرمان assigner"، مانند:
 some_attribute: SOME_TYPE assign set_some_attribute
 set_some_attribute (v: VALUE_TYPE)
 -- Set value of some_attribute to `v'.
 do
 some_attribute := v
 end
 به طور کلی اجازه می‌دهد تا به دنبال چیزی مثل دسترسی مستقیم (به عنوان مثال در نتیجه شکستن اصل پنهان کردن اطلاعات)، این عمل خطرناک است که آن را پنهان یا obfuscatesواقعیت " گذارنده " مورد استفاده قرار گرفته است. در عمل، بهتر است به خواندن تماس مستقیم بهگذارنده و نه از دلالت بر دسترسی مستقیم به یکی از ویژگی‌های مانند some_attribute همان‌طور که در کد مثال بالا دلالت می‌کند.
 feature {NONE} -- Initialization
 default_create
 -- Initialize a new `zero' decimal instance.
 do
 make_zero
 end
 بر خلاف زبان‌های دیگر، داشتن مفاهیم "public", "private" و به همین ترتیب، با استفاده از فناوری صادرات به کنترل دقیق تر هدف گذاری بین مشتری و کلاس تأمین می‌کند. علاوه بر این، منطق صادرات استفاده می‌شود می‌تواند به‌طور ایستا توسط کامپایلر، که اجازه می‌دهد تا تشخیص قبل از دامنه نقض تماس در زمان کامپایل به جای زمان اجرا بررسی می‌شود. به عنوان مثال (در زیر)، شبیه به "خصوصی" را در زبان‌های دیگر. در محدوده اعمال این راه به "مجموعه‌ای از ویژگی های" (به عنوان مثال همه چیز را زیر `ویژگی" کلمه کلیدی برای دو بعدی یا مجموعه‌ای از ویژگی‌های کلید واژه پایان کلاس) را می‌توان در کلاس نسل با استفاده از کلید واژه "صادرات" تغییر کرد.
متناوباً، عدماعلامیه صادرات {X} به معنی {هر} و شبیه به " public" هدف گذاری از زبان‌های دیگر است.
feature—Constants
 در نهایت، هدف گذاری انتخابی می‌تواند دقیقاً در جهان پروژه ایفل باشد و، مانند هر کلاس کنترل است.
در اینجا، کامپایلر به شما این امکان را می‌دهد که تنها کلاس‌های ذکر شده بینآکولاد برای دسترسی به ویژگی‌های موجود در گروه ویژگی (مثلاً اعشاری، DCM_MA_DECIMAL_PARSER, DCM_MA_DECIMAL_HANDLER) استفاده کنید.
{"title": "ایفل (زبان برنامه‌نویسی)", "link": "https://fa.wikipedia.org//w/index.php?title=%D8%A7%DB%8C%D9%81%D9%84_(%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C)&oldid=34904990", "language": "fa"}