سیمولا: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Z.abbasy (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
SiarFisher (بحث | مشارکت‌ها)
جز ویرایش Z.abbasy (بحث) واگردانده شد به آخرین تغییری که AliBot انجام داده بود
خط ۱:
{{بازنویسی}}
'''سیمولا'''
سیمولا نامی برای دو زبان برنامه نویسی است، سیمولا۱ و سیمولا۶۷، در دهه ۱۹۶۰ در مرکز محاسبه نروژی در آلسو، به طور مشترک توسط اله یوهان دال و کریستن نیگارد ایجاد شد، مجموعه‌ای عالی و نسبتا وفادار از الگول۶۰ است.
{{ترجمه}}
سیمولا۶۷ اشیاء، زیرکلاسها ، متدهای مجازی، دستورالعمل‌ها، پیشامد گسسته شبیه سازی و ویژگی‌های پاک کردن خانه‌های بلااستفاده حافظه آزاد شده را معرفی کرد. سیمولا اولین زبان برنامه نویسی شی گرای مطرح شده‌است. همانطور که از نامش بر می‌آید سیمولا برای شبیه سازی طراحی شد، و نیازهای آن دامنه، چارچوبی را برای بسیاری از ویژگی‌های زبانهای شی گرای امروزی فراهم کرده‌است.
سیمولا یک نام برای دو زبان برنامه نویسی، سیمولا 1 و سیمولا 67 است ،که در 1960 در مرکز محاسبات نروژی در اسلو، توسط اوله - یوهان دال و کریستن نیگارد توسعه یافت. نحوی، آن ابر مجموعه نسبتا وفادار از الگول 60 است.
 
سیمولا در محدوده وسیعی از کاربردهای شبیه سازی مانند طراحی‌های مجتمع سازی در مقیاس بزرگ(وی ال اس آی)، پردازش‌ها، پروتکل‌ها، الگوریتمها و سایر کاربردها مانند تایپ چینی، گرافیک‌های کامپیوتری و آموزش و پرورش، مورد استفاده قرار گرفت. از زمانی که نوع اشیاء سیمولا در سی ++، جاوا و سی شارپ دوباره تولید شد، اغلب تاثیر سیمولا دست کم گرفته شده‌است. سازنده سی ++، تصدیق کرده‌است که سیمولا بزرکترین تاثیر را بر وی در ایجاد سی ++ ، رساندن نوعی از بهره وری توسعه سخت‌افزاری و نرم‌افزاری پیشنهاد شده توسط سیمولا به سرعت خام انجام توسط [[الگوریتم]]‌های پیشنهاد شده زبانهای سطح پایین تر مانند بی سی پی ال، داشته‌است.
سیمولا 67 اشیاء، کلاس ها. ، زیر کلاس ها، متدهای مجازی، هم-روال، شبیه سازی رویداد گسسته و ویژگی های جمع آوری زباله معرفی کرد.
 
سیمولا
سیمولا اولین زبان برنامه نویسی شی گرا در نظر گرفته شده است. همانطور که از نام آن پیداست، سیمولا برای انجام شبیه سازی، طراحی شده است و نیاز آن دامنه، چارچوبی برای بسیاری از ویژگی های زبان های شی گرا امروز تهیه کرده است.
شی گرا :مدل
۱۹۶۷ :پدیدار شده در
تولید یکپارچه سیستم‌عامل کامپیوتر :کاربرد عمده
الگول۶۰ :تاثیر گرفته از
زبانهای برنامه نویسی شی گرا :تاثیر گذار بر
 
== تاریخچه ==
سیمولا در طیف وسیعی از کاربردها مانند شبیه سازی طرح های VLSI، مدل سازی فرایند، پروتکل ها ، الگوریتم ها و برنامه های کاربردی دیگر مانند حروفچینی، گرافیک کامپیوتری، و آموزش و پرورش استفاده شده است. از آنجا که اشیاء سیمولا- گونه در + +C، جاوا و سی شارپ دوباره استفاده میشود، نفوذ سیمولا اغلب کم بیان میشود. خالق + + C ، جارن استراستروپ ، اذعان کرده است که سیمولا 67 بود بیشترین اثر را در او برای توسعه + + C داشت، که نوع بهبودهای بهره وری را که سیمولا به سرعت خام محاسبات ارائه داده شده توسط زبان های سطح پایین مثل BCPL را ارمغان آورد.
 
کریستن نیگارد نوشتن برنامه‌های شبیه سازی [[کامپیوتر]] را در ۱۹۵۷ آغاز کرد. نیگارد دریافت که نیازمند راه بهتری برای توصیف عملکرد سیستم‌های ناهماهنگ است.برای پیشروی با ایده‌هایش برای توصیف یِک سیستم با زبان صوری کامپیوتر، نیگارد دریافت که نیازمند فردی با مهارتهای برنامه نویسی بیشتری نسبت به خود است. اله یوهان دال در ژانویه ۱۹۶۲ به کار او پیوست. تصمیم پیوند این زبان به الگول۶۰ مدت کمی پس از آن گرفته شد.در می‌۱۹۶۲ مفهوم اصلی زبان شبیه سازی تنظیم شد. "سیمولا۱" برای هدف خاصی از [[زبان برنامه نویسی]] برای شبیه سازی سیستم‌های رویدادهای گسسته به وجود آمد.
سیمولا هنوز هم برای انواع مختلف از درس های دانشگاه استفاده می شود ، به عنوان مثال جارک لنار سیمولارا به دانشجویان در
دانشگاه مالت می آموزد.
 
==تاریخچه==
کریستن نیگارد اواخر می‌۱۹۶۲ در ارتباط با بازاریابی کامپیوتر جدیدشان ۱۱۰۷ UNIVAC به Univac دعوت شد.در آن ملاقات نیگارد ایده‌های سیمولا را به رابرت بمر مدیر سیستم‌های برنامه نویسی در Univac عرضه کرد. بمر که یک طرفدار شناخته شده الگول بود دریافت که پروژه سیمولا تاثیرگذار است. بمر همچنین در یک جلسه در دومین کنفرانس بین‌المللی درباره پردازش اطلاعات به میزبانی فدراسیون بین‌المللی اطلاعات شرکت داشت. او نیگارد را دعوت کرد، کسی که مقاله "سیمولا—توسعه یافته الگول برای شرح شبکه‌های رویداد گسسته را ارایه کرد.
کریستن نیگارد شروع به نوشتن برنامه های شبیه سازی کامپیوتر در سال 1957کرد. نیگارد نیاز به یک راه بهتر برای توصیف عدم تجانس و عملکرد یک سیستم را دید. برای رفتن بیشتر با ایده های خود بر روی یک زبان رسمی کامپیوتر برای توصیف سیستم، متوجه شد که او کسی را با مهارت بیشتر برنامه نویسی از کسی که داشته نیاز دارد. اوله - یوهان دال به او در کارش از ژانویه 1962 پیوست. این تصمیم برای ارتباط زبان الگول 60 در مدت کوتاهی پس ازآن گرفته شد. تا قبل از مه 1962 مفاهیم اصلی زبان شبیه سازی تعیین شد. "سیمولا 1" متولد شد ، یک زبان برنامه نویسی با هدف ویژه برای شبیه سازی سیستم های رویداد گسسته.
کریستن نیگارد به یونیوک اواخر ماه مه 1962 در ارتباط با بازاریابی کامپیوتر جدید یونیوک 1107 دعوت شد. در آن دیدار نیگارد ایده های سیمولا به رابرت بمر ، مدیر برنامه نویسی سیستم در یونیوک ارائه داد. بمر یک هواخواه سوگند یاد کرده الگول بود و متوجه شد پروژه سیمولا الزام آور است. بمر همچنین رییس یک جلسه در دومین همایش بین المللی پردازش اطلاعات میزبانی شده توسط IFIP بود. او نیگارد را که مقاله "سیمولا -- فرمتی از الگول به شرح شبکه های رویداد- گسسته " را ارائه بود، دعوت کرد.
مرکز محاسبات نروژی یونیوک 1107 را دراوت 1963 با تخفیف قابل توجهی گرفت، که در آن دال سیمولا1 را تحت قرارداد با یونیوک پیاده می کرد. پیاده سازی بر مبنای یونیوک الگول 60 کامپایلر استوار بود. سیمولا 1 در یونیوک 1107 از ژانویه 1965 به طور کامل عملیاتی بود. در چند سال بعدی دال و نیگارد زمان زیادی را صرف آموزش سیمولاکردند. سیمولا به چندین کشور در سراسر جهان گسترش یافت و سیمولا 1 بعدا در کامپیوترهای بوروقس B5500 و کامپیوتر اورال - 16 روسی پیاده شد.
 
مرکز کامپیوتری نروژی یک UNIVAC ۱۱۰۷ در آگوست ۱۹۶۳ با تخفیفی قابل توجه خرید به علت اینکه دال تحت قرارداد با Univac سیمولا۱ را تکمیل کرد. تکامل بر پایه کامپایلر الگول۶۰ UNIVAC استوار بود . سیمولا۱ در ژانویه ۱۹۷۵ روی UNIVAC ۱۱۰۷ به طور کامل قابل اجرا شد.در دو سال بعدی دال و نیگارد زمان زیادی را صرف آموزش سیمولا نمودند. سیمولا در کشورهای مختلفی در سراسر جهان گسترش یافت و سیمولا۱ بعدها روی کامپیوترهای Burroughs B۵۵۰۰ و کامپیوتر URAL-۱۶ روسیه‌ای اجرا شد.
در سال 1966 C.A.R.Hoare مفهوم ساخت کلاس رکورد را معرفی کرد ، که دال و نیگارد آن را با مفهوم پیشوندی و ویژگی های دیگری برای برآورده کردن نیازهای خود برای مفهوم فرایند تعمیم داده شده گسترش دادند . دال و نیگارد مقاله خود در اعلان های کلاس ها و زیر کلاس ها در کنفرانس کاری IFIP روی زبانهای شبیه سازی در اسلو،در مه 1967 ارائه دادند. این مقاله اولین تعریف رسمی از سیمولا 67 شد. در ژوئن 1967 کنفرانسی برای استاندارد کردن زبان و آغاز تعدادی از پیاده سازی ها برگزار شد. دال پیشنهادی برای متحد کردن نوع و مفهوم کلاس داد. این به بحثهای جدی منجر شد، و پیشنهاد توسط هیئت مدیره رد شد. سیمولا 67 بود به طور رسمی در اولین جلسه از گروه استانداردهای سیمولا (SSG) در ماه فوریه 1968 استاندارد شد.
سیمولا تاثیرگذار در توسعه صحبت کوتاه و بعد زبانهای برنامه نویسی شی گرا بود. آن همچنین کمک به الهام بخشی مدل عملگر از محاسبات همزمان کرد، هر چند سیمولا تنها پشتیبانی از همکاری- روال و نه همزمانی درست می کند.
 
در ۱۹۶۶ C.A.R Hoare مفهوم ساختن رکورد کلاس را معرفی کرد، که دال و نیگارد تعمیم داده بودند با مفهوم پیشوندی و سایر ترکیب‌ها برای رفع نیازشان برای مفهوم پردازش کلی. دال و نیگارد در می‌۱۹۶۷ در السو مقاله خود راجع به اعلان کلاس و زیر کلاسها در کنفرانس طرزکار زبانهای شبیه سازی فدراسیون بین‌المللی پردازش اطلاعات ارایه کردند.این مقاله اولین تعریف قراردادی از سیمولا۶۷ شد. درژوین ۱۹۶۷ کنفرانسی به منظور استانداردسازی و آغاز چند پیاده سازی برگزار شد. دال پیشنهاد یکی کردن مفهوم نوع و کلاس را مطرح کرد. این باعث بحثهایی جدی شد و پیشنهاد توسط هییت مدیره رد شد. سیمولا۶۷ در فوریه ۱۹۶۸ در اولین ملاقات گروه استاندار سیمولا به طور رسمی استانداردسازی شد.
در اواخر دهه شصت و اوایل دهه هفتاد چهار پیاده سازی اصلی از سیمولا وجود داشت :
• یونیوک 1100 توسط NCC،
• سیستم 360 و سیستم 370 توسط پژوهشکده سوئدی برای دفاع ملی (FOA)،
• سی دی سی 3000 توسط دانشگاه اسلو در نصب و راه اندازی کامپیوتر مشترک در جلر
• تاپس - 10 توسط ENEA AB
 
این پیاده سازی به طیف گسترده ای از زبانهای برنامه نویسی منتقل شدند. تاپس - 10 مفهوم متغیرها و روش های عضو عمومی، محافظت شده و خصوصی، که بعدا با سیمولا 87 یکپارچه شد را پیاده کرد . سیمولا 87 آخرین استاندارد است و به طیف گسترده ای از زبانهای برنامه نویسی منتقل شده است. عمدتا سه پیاده سازی شده وجود دارد :
• سیمولا AS،
• لوند سیمولا،
• -GNU Cimدانلود از سایت اف تی پی از دانشگاه اسلو
 
در نوامبر 2001 دال و نیگارد مدال IEEE جان فون نویمان توسط موسسه مهندسان برق و الکترونیک را "برای معرفی مفاهیم برنامه نویسی شی گرا از طریق طراحی و پیاده سازی سیمولا 67" دریافت کردند. آنها در ماه فوریه 2002، جایزه A.M.2001 تورینگ توسط انجمن ماشین ها محاسبه ی (ACM) را ، با نقل قول : "برای ایده های اساسی برای ظهور برنامه نویسی شیء گرا، از طریق طراحی شان با زبان های برنامه نویسی سیمولا 1 و سیمولا 67" دریافت کردند. متاسفانه نه دال و نه نیگارد نتوانستند خود را به سخنرانی جایزه ACM تورینگ که برنامه ریزی شده برای ارایه در کنفرانس OOPSLA 2002 در شهر سیاتل شده بود، برسانند، چرا که آنها هر دو در عرض دو ماه از یکدیگر در ماه ژوئن و آگوست به ترتیب، از دنیا رفتند.
 
آزمایشگاه تحقیقات سیمولا یک موسسه تحقیقاتی است که بخاطر زبان سیمولا نامگذاری شده است، و نیگارد یک موقعیت کاری پاره وقت از سال بازگشایی در2001 آنجا داشت.
 
سیمولا در ایجاد اسمالتاک و بعدها زبانهای برنامه نویسی شی گرا تاثیر گذار بود. همچنین به الهام بخشیدن به مدل نقش بیرونی محاسبه همزمان کمک کرد با اینکه سیمولا فقط دستورالعمل‌ها را حمایت می‌کند نه دقیقا همزمانی را.
==کد نمونه==
 
در اواخر دهه شصت و اوایل دهه هفتاد چهار پیاده سازی اصلی از سیمولا وجود داشت:
===برنامه حداقل===
-UNIVAC ۱۱۰۷ توسط NCC
- سیستم۳۶۰ و سیستم ۳۷۰ توسط موسسه تحقیقاتی سویدی برای دفاع ملی
- CDC ۳۰۰۰ توسط دانشگاه السو نصب کامپیتر مشترک بر Kjeller
-TOPS-۱۰ توسط ENEA AB
این پیاده سازی‌ها به محدوده وسیعی از طرح‌های زیربنایی متصل بود.tops_۱۰ مفهوم‌های عمومی، حفاظت شده و متغیرهای عضو خصوصی را پیاده سازی کرد که بعدها در سیمولا۸۷ جمع شد. سیمولا۸۷ آخرین استاندارد است و به محدوده وسیعی از طرح‌های زیربنایی متصل است. سه نوع توسعه یافته اصلی وجود دارد:
-سیمولا AS
-سیمولا لاند
-تولید یکپارچه سیستم‌عامل کامپیوتر
در نوامبر ۲۰۰۱ دال و نیگارد" به خاطر معرفی مفاهیم زیر مجموعه برنامه نویسی شی گرا در حین طراحی و توسعه سیمولا۶۷" مدال جان ون نیومن IEEE را از موسسه مهندسان الکتریکط و الکترونیکی دریافت کردند، آنها در فوریه ۲۰۰۲ جایزه‌ای ام تورینگ( A.M.turing) را برای رابط برای ماشین‌های کامپیوتری با تاکید بر "ایده‌های فوق العاده اساسی برنامه نویسی شی گرا در حین طراحی زبانهای یرنامه نویسی سیمولا۱ و سیمولا۶۷" دریافت کردند. متاسفانه نه دال ونه نیگارد هیچ یک نتوانستند در سخنرانی جایزه ACM Turing ارایه دهند که زمان بندی شده بود تا به کنفرانس OOPSLA ۲۰۰۲ در سیاتل تحویل داده شود چون هردوی آنها در فاصله حدود دو ماه از یکدکر به ترتیب در ژوین و آگوست درگذشتند.
آزمایشگاه تحقیقات سیمولا یک موسسه تحقیقات است که بعد از زبان سیمولا نامگذاری شده‌است. نیگارد از زمان بازگشایی آن در سال ۲۰۰۱ مدت زمانی را در آنجا گذارنده‌است.
 
== کد نمونه ==
فایل کامپیوتر خالی یک برنامه حداقل در سیمولا است، که توسط حجم برنامه منبع اندازه گیری شده است. آن را از فقط یک چیز تشکیل شده است: بیان گنگ.
 
=== برنامه کوچک ===
با این حال ، برنامه حداقل به صورت مناسب تری به عنوان یک بلوک خالی جلوه داده میشود:
 
یک فایل خالی در کامپیوتر یک برنامه کوچک در سیمولا است که به وسیله اندازه کد مبدا اندازه گیری شده‌است.تنها از یک چیز تشکیل شده‌است: یک دستور مجازی
هر چند برنامه کوچک راحت تر با یک قالب تهی ارایه می‌شود
<source lang="cpp">
Begin
End;
 
</source>
آن اجرای برنامه را آغاز و بلافاصله خاتمه میدهد. زبان هیچ مقدار برگردانده شده از خود برنامه ندارد.
این شروع به اجرا می‌کند و به سرعت برنامه پایان می‌یابد. این زبان هیچ مقدار بازگشتی از خود برنامه ندارد.
 
=== Hello world قدیمی ===
===سلام جهان کلاسیک===
 
توجه داشته باشید که سیمولا حروف – حساس نیست. نمونه ای از یک برنامه سلام جهان در سیمولا :
 
تذکر! سیمولا حساس به حروف نیست. یک مثال از برنامه Hello world در سیمولا:
<source lang="cpp">
Begin
OutText ("Hello World!");
سطر ۶۰ ⟵ ۵۸:
End;
 
</source>
===کلاس ها، زیرکلاس ها و روش های مجازی===
 
 
=== کلاس‌ها، زیر کلاس‌ها و متدهای مجازی ===
مثال واقعی تر با استفاده از کلاس ها، زیرکلاس ها و روش های مجازی:
 
یک مثال واقعی تر با کاربرد کلاسها و زیر کلاسها و متدهای مجازی:
<source lang="cpp">
Begin
Class Glyph;
سطر ۸۳ ⟵ ۸۴:
Begin
Integer i;
For i:= 1۱ Step 1 Until UpperBound (elements, 1) Do
elements (i).print;
OutImage;
سطر ۹۰ ⟵ ۹۱:
 
Ref (Glyph) rg;
Ref (Glyph) Array rgs (1۱ : 4۴);
 
! Main program;
rgs (1۱):- New Char ('A');
rgs (2۲):- New Char ('b');
rgs (3۳):- New Char ('b');
rgs (4۴):- New Char ('a');
rg:- New Line (rgs);
rg.print;
End;
</source>
 
مثال بالا یک کلاس بزرگ (گلیف)سوپرکلاس با دو زیرکلاس ها (کاراکتر و خط) دارد. یکدارد_یک روشمتد مجازی با دو پیاده سازیاجرا وجود دارد. اجرای برنامهاجرا با اجرای برنامه اصلی شروع می شودمی‌شود. سیمولا نشانی از مفهومزمانی کلاسکه هایکلاسها انتزاعیبا نداردمتدهای زیرامجازی کلاسخالص هانمونه باسازی روشمی‌شوند هایمفهوم مجازیکلاسهای خالصانتزاعی میرا تواند مثالی شودندارند. این به اینبدان معنی استست که در مثال بالا همه کلاسکلاسها هامی‌توانند مینمونه توانند مثالیسازی شوند. فرا خواندنفراخوانی یک روشمتد مجازی خالص هرچندممکن است یک خطای زمان اجرا تولیدبه میوجود کندآورد.
 
=== فراخوانی با ناماسم ===
 
سیمولا از فراخوانی با ناماسم را پشتیبانی میکند،می‌کند بنابراینبه ابزارهمین جنسندلیل سیستم Jensen به راحتی می تواندمی‌تواند پیادهاجرا شود. باهر این حال ،چند حالت انتقال پیش فرض ارسال برای پارامتر ساده بادر مقدارالگول فراخواندهفراخوانی میشودبا ،اسم براست خلافولی زباندر الگول کهسیمولا فراخوانی با ناممقدار را استفاده می کنداست. برنامهکد منبعمبدا برایدر ابزار جنسن به همینسیستم خاطرJensen باید فراخوانی با نام را برای پارامترها هنگامی که توسطبه وسیله یک گردآورکامپایلر سیمولا گردآوریکامپایل شده رامی‌شوند مشخص کند.
یک مثال بسیار ساده تر تابع جمع است می‌تواند همانند ادامه تولید شود.
 
<source lang="cpp">
مثال بسیار ساده تر دیگر تابع جمع است (Σ) که می تواند به شرح زیر پیاده شود :
Real Procedure Sigma (l, m, n, u);
 
Real Procedure Sigma (k, m,Name nl, u);
NameInteger kl, m, n; Real u;
Integer k, m, n; Real u;
Begin
Real s;
kl:= m;
While kl <= n Do Begin s:= s + u; kl:= kl + 1۱; End;
Sigma:= s;
End;
</source>
 
برنامهکد بالا فراخوانی با نام را برای کنترل متغیر (k)l و بیانعبارت (u) استفاده میمی‌کند کند.این ، این اجازه میرا دهدمی‌دهد تاکه متغیر کنترلکنترلی در کنندهعبارات استفاده شوند. تذکر که استاندارد سیمولا به متغیر کنترلط در بیانحلقه for اجازهٔ داشتن محدوده‌ای خاص را می‌دهد.کد بالا سپس از یک حلقه while برای قابلیت انتقال بیشتر استفاده شودمی‌کند.
ادامه:
توجه داشته باشید که استاندارد سیمولا محدودیت های خاصی بر متغیر کنترل کننده در حلقه for اجازه می دهد. بنابراین برنامه بالا از حلقه while برای حداکثر قابلیت حمل استفاده می کند.
 
به شرح زیر :
<math> Z = \sum_{i=1}^{۱0۰}{۱ \over (i + a)^2}</math>
 
که به صورت ادامه می‌تواند بسط یابد:
<source lang="cpp">
Z:= Sigma (i, ۱, ۱۰۰, ۱ / (i + a) ** ۲);
</source>
 
که پس از آن میتواند به شرح زیر پیاده شود :
 
=== شبیه سازی ===
Z:= Sigma (i, 1, 100, 1 / (i + a) ** 2);
 
سیمولا برنامه آماده برای انجام شبیه سازیهای رویدادهای گسسته را دارد .این برنامه آماده شبیه سازی بر پایه امکانات شی گرای سیمولا و مفهوم دستورالعمل‌های آن استوار است.
===شبیه سازی===
سام سالی و اندی در حال خرید لباس هستند. آنها باید از یک اتاق پرو استفاده کنند.هر کدام از آنها حدود ۱۲ دقیقه در جستجوی لباس است و سپس اتاق پرو را به طور انحصاری استفاده می‌کند، هر کدام از یک توزیع نرمال پیروی می‌کند. یک شبیه سازی از آزمایش اتاق پرو آنها به شکل زیر است:
 
<source lang="cpp">
سیمولا شامل یک بسته شبیه سازی برای انجام شبیه سازی رویداد گسسته است. این بسته شبیه سازی بر مبنای ویژگی های شی گرا سیمولا و مفهوم هم-روال آن است.
سام، سالی و اندی در حال خرید لباس هستند. آنها باید از یک اتاق پرو اشتراکی استفاده کنند. هر کدام از آنها در حال گشتن در فروشگاه به مدت 12 دقیقه هستند و سپس از اتاق پرو به طور انحصاری به مدت سه دقیقه استفاده می کنند، هر یک از یک توزیع نرمال پیروی می کنند.یک شبیه سازی از تجربه اتاق پرو آنها به شرح زیر است :
Simulation Begin
Class FittingRoom; Begin
سطر ۱۵۷ ⟵ ۱۶۲:
Process Class Person (pname); Text pname; Begin
While True Do Begin
Hold (Normal (12۱۲, 4۴, u));
report (pname & " is requesting the fitting room");
fittingroom1.request;
report (pname & " has entered the fitting room");
Hold (Normal (3۳, 1۱, u));
fittingroom1.leave;
report (pname & " has left the fitting room");
سطر ۱۶۸ ⟵ ۱۷۳:
 
Integer u;
Ref (FittingRoom) fittingRoom1fittingRoom۱;
 
fittingRoom1fittingRoom۱:- New FittingRoom;
Activate New Person ("Sam");
Activate New Person ("Sally");
Activate New Person ("Andy");
Hold (100۱۰۰);
End;
</source>
 
کد اصلی با عبارت شبیه سازی برای انجام شبیه سازی شروع شده‌است. برنامه آماده می‌تواند در هر قطعه‌ای استفاده شود و شبیه سازی‌ها هنگامی که فرد شبیه ساز شبیه سازی را انجام می‌دهد حتی می‌توانند تودرتو شوند.
شی اتاق پرو از یک صف برای دستیابی به اتاق پرو استفاده می‌کند. هنگامی که کسی اتاق پرو را نیاز داشته باشد و اتاق پر باشد باید در صف منتظر بماند. هنگامی که شخصی اتاق پرو را ترک می‌کند اولی از صف خارج می‌شود و بنابراین از صف در پاک می‌شود.
بلوک اصلی با شبیه سازی برای قادر کردن شبیه سازی پیشوند دار شده است . بسته شبیه سازی می تواند در هر بلوک استفاده می شود و شبیه سازی ها حتی می توانند داخل هم جا داده شوند وقتی که کسی که شبیه سازی می کند را شبیه سازی می کند.
شخص قسمتی از کلاس پردازش است و کار آن توصیف استفاده ( زمان مورد نیاز برای جستجوی فروشگاه و زمانی که در اتاق پرو می‌گذرد) و فراخوانی متدها در شی اتاق پرو برای درخواست و ترک اتاق پرو است.
شی اتاق پرو یک صف (درب) را برای دسترسی به اتاق پرو استفاده می کند. هنگامی که کسی درخواست اتاق پرو می کند و آن اشغال است، آنها را باید در این صف منتظر (صبر (درب)) بمانند. وقتی کسی اتاق پرو را ترک می کند اولین کس (در صورت وجود) از صف (درفعال. اولین) جدا می شود و بر این اساس از صف در (در. اولین. بیرون) برداشته می شود.
برنامه اصلی همه اشیاء را می‌سازد و همه اشیاء اشخاص را برای قرار دادن آنها در صف فعال می‌کند. برنامه اصلی برای ۱۰۰ دقیقه از زمان شبیه سازی قبل از اتمام برنامه متوقف می‌شود.
شخص زیر کلاسی از فرایند است و فعالیت او با استفاده از نگه داشتن (زمان برای دیدن فروشگاه و زمان حضور در اتاق پرو) و و روش های فراخوانی در شی اتاق پرو برای درخواست و ترک اتاق پرو شرح داده شده است.
برنامه اصلی همه اشیاء را ایجاد وهمه اشیاء فردی را فعال برای قرار دادن آنها در صف رویداد می کند. برنامه اصلی برای 100 دقیقه از زمان شبیه سازی می ماند قبل ازاینکه برنامه پایان یابد.
 
==همچنین مشاهده کنید==
 
• زبان الگول 60 ،
• بتا، جانشین مدرن برای سیمولا،
• برنامه نویسی شی گرا،
• زبان شبیه سازی
• Subtyping، مفهوم نظری مدرن از subtyping که سرچشمه در سیمولا دارد.
 
 
==منابع==
 
== اینها را هم ببینید ==
* [[Object-oriented programming]]
* [[BETA programming language]] (a modern successor to Simula)
* [[Simulation language]]
* [[ALGOL ۶۰]]
 
== منبع ==
1. ^ a b c d e f g h i j k l m n Ole-Johan Dahl, Bjørm Myhrhaug, and Kristen Nygaard (1970), :[1], Common Base Language, Norwegian Computing Center
2. ^ http://staff.um.edu.mt/jskl1/
3. ^ Holmevik, Jan Rune (1994). "Compiling Simula: A historical study of technological genesis". IEEE Annals in the History of Computing 16 (4): 25–37. http://www.idi.ntnu.no/grupper/su/publ/simula/holmevik-simula-ieeeannals94.pdf. Retrieved 12 May 2010.
4. ^ Jan Rune [2], Compiling Simula, Institute for Studies in Research and Higher Education, Oslo, Norway
ماخذ
 
* [http://heim.ifi.uio.no/~cim/sim_history.html Compiling Simula] Early history of the development of Simula by Jan Rune Holmevik
• IBM System 360/370 Compiler and Historical Documentation The Simula Standard and other historical documentation by Peter Sylvester
* [http://www.edelweb.fr/Simula/ IBM System ۳۶۰/۳۷۰ Compiler and Historical Documentation] The Simula Standard and other historical documentation by Peter Sylvester
لینک های بیرونی
 
== لینکهای اضافه ==
• Introduction to OOP in Simula – By J.Sklenar, based on the 1997 seminar "30 Years of Object Oriented Programming (OOP)" at the University of Malta
• How Object-Oriented Programming Started – By Dahl and Nygaard, abbrev. version of an encyclopedia article; on Nygaards home page
• Simula at the Université de Montréal Includes tutorials, documentation, and links in English and in French
• An Introduction to Programming in Simula A textbook by Rob Pooley now available as HTML
• DEMOS: a system for Discrete Event Modelling on SIMULA Demos Reference Manual, Demos was originally written as a package within SIMULA by Professor of Computer Science Graham M. Birtwistle at the University of Calgary, Canada
 
* [http://staff.um.edu.mt/jskl1/talk.html Introduction to OOP in Simula] – By J.Sklenar, based on the 1997 seminar "۳۰ Years of Object Oriented Programming (OOP)" at the University of Malta
* [http://heim.ifi.uio.no/~kristen/FORSKNINGSDOK_MAPPE/F_OO_start.html How Object-Oriented Programming Started] – By Dahl and Nygaard, abbrev. version of an encyclopedia article; on Nygaards home page
* [http://www.iro.umontreal.ca/~simula/ Simula at the Université de Montréal] Includes tutorials, documentation, and links in English and in French
* [http://www.macs.hw.ac.uk/~rjp/bookhtml/ An Introduction to Programming in Simula] A textbook by Rob Pooley now available as HTML
 
[[رده:موضوعات مربوط به زبان‌های برنامه‌نویسی]]
* ویکی‌پدیای انگلیسی. {{localurl:Wikipedia:Self_(programming_language)}}
 
[[ca:Simula67]]
[[رده:برنامه‌نویسی]]
[[cs:Simula 67]]
[[رده:اشکالهای برنامه‌نویسی]]
[[de:Simula]]
[[el:Simula]]
[[en:Simula]]
[[es:Simula]]
[[fi:Simula]]
[[fr:Simula]]
[[hu:Simula]]
[[it:Simula]]
[[ja:Simula]]
[[ko:시뮬라]]
[[nl:Simula]]
[[nn:Simula]]
[[no:Simula]]
[[pl:Simula]]
[[pt:Simula]]
[[ru:Симула]]
[[sk:Simula]]
[[sv:Simula]]
[[tg:Simula]]
[[th:ภาษาซิมูลา]]
[[uk:Симула]]
[[zh:Simula]]