اذا لم تجد ما تبحث عنه يمكنك استخدام كلمات أكثر دقة.
أن ملف الحاسب الفارغ computer file يكون برنامج الحد الأدنى في سيمولا. مقاس عن طريق الحجم للكود مصدريsource code انه يتألف من شيء واحد فقط وهو بيان (statement) الدمية. وعلى كل حال برنامج الحد الأدنى بشكل مريح يمثل بكتلة فارغة:
Begin End;
يبدأ تنفيذ وينهي فورا، اللغة لايكون لها أي عائد (return value) من البرنامج نفسة.
ملحوظة ان سيمولا حساس لحالة الأحرفcase-insensitive. مثال لبرنامج مرحباً ياعالم (Hello world program) في سيمولا:
Begin OutText ("Hello World!"); Outimage; End;
مثال أكثر واقعية للفئات[1]:1.3.3, 2, والفئات الفرعية [1]:2.2.1 والطرق الظاهرية [1]:2.2.3:
Begin Class Glyph; Virtual: Procedure print Is Procedure print;; Begin End; Glyph Class Char (c); Character c; Begin Procedure print; OutChar(c); End; Glyph Class Line (elements); Ref (Glyph) Array elements; Begin Procedure print; Begin Integer i; For i = 1 Step 1 Until UpperBound (elements, 1) Do elements (i).print; OutImage; End; End; 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;
المثال أعلاه يملك واحداً من الفئة العظمىsuper class (الشكل المنقوش) مع اثنين من الفئات الفرعية (subclasses) (شار والخط). وهناك طريق ظاهرية واحدة مع اثنين من التطبيقات implementations. التنفيذ يبدأ تنفيذ البرنامج الرئيسي. سيمولا ليس لديه مفهوم فئات مجردة الطبقات abstract classesمع أساليب الظاهرية البحتة pure virtual methodsيمكن تمثيلة instantiated. وهذا يعني أنه في المثال أعلاه جميع الطبقات يمكن تمثيلها. وسوف يدعو الطريقة الظاهري الصرفة (pure virtual method) ولكن على اية حال سوف ينتج خطأrun-time error.
يدعم سيمولاالنداء بالاسم call by name[1]:8.2.3 ولذلك يمكن بسهولة لجهاز جينسن Jensen"s Device ان ينفذ.على اية حال، طور الانتقال الافتراضي لأجل المحيط البسيط يكون هو النداء بالقيمة call by value ,وهو عكس ALGOL الذي يستخدم النداء بالاسم (call by name). الكود المصدري لجهاز جينسنز Jensen"s Device يوجب نداء بالاسم دعوة المحيط عندما يطلبها مترجم سيمولا. مثال اخر ابسط بكثير وهو للوظيفة الحسابية(summation function∑) الذي يمكن تطبيقه كما يلي :
Real Procedure Sigma (k, m, n, u); Name k, u; Integer k, m, n; Real u; Begin Real s; k = m; While k <== n Do Begin s = s + u; k == k + 1; End; Sigma = s; End;
المثال بالأعلى يستخدم نداء بالاسم call by name للتحكم بالمتغير (K) والمعبر U)). وهذا يسمح بالتحكم بالمتغير عن طريق المعبر. ملحوظة معايير سيمولا تسمح لقيود محددة في التحكم بالمتغير في حلقة واحدة (for loop).الكود الذي بالأعلى عندما تكون الحلقة في أقصى قابلية لها. ما يلي :
يمكن تنفيذه كالتالي :
Z = Sigma (i, 1, 100, 1 / (i + a) ** 2);
يتضمن سيمولا مجموعة من المحاكات لفعل محاكاة منفصلة الحدث (discrete event simulations). هذه المجموعة مبنية على مفهوم ميزات والروتين البرمجة كائنية التوجه (object oriented) التابع لسيمولا. سام، سالي، واندي يتسوقون لشراء الملابس. يجب عليهم التشارك في غرفة واحدة لقياس الملابس. كل واحد منهم يستعرض المتجر لمدة 12 دقيقة ثم يستخدم غرفة القياس لمدة ثلاث دقائق فقط، كلالتالي وزع توزيع عادي.محاكاة لتجربتهم غرفة القياس هي كما يلي :
Simulation Begin Class FittingRoom; Begin Ref (Head) door; Boolean inUse; Procedure request; Begin If inUse Then Begin Wait (door); door.First.Out; End; inUse = True; End; Procedure leave; Begin inUse = False; Activate door.First; End; door:- New Head; End; Procedure report (message); Text message; Begin OutFix (Time, 2, 0); OutText (": " & message); OutImage; End; 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"); End; End; Integer u; Ref (FittingRoom) fittingRoom1; fittingRoom1:- New FittingRoom; Activate New Person ("Sam"); Activate New Person ("Sally"); Activate New Person ("Andy"); Hold (100); End;
وتعد الكتلة الرئيسية الغير مسبوقة للمحاكاة هي تمكين المحاكاة. ويمكن استخدام.وحزمة المحاكاة يمكن استخدامها في الكتلة والمحاكاة ويمكن أن تتداخل حتى عندما نحاكي شخص يعمل المحاكاة.
العقبة الرئيسية للمحاكاة هي تمكين المحاكاة.وحزمة المحاكاة يمكن استخدامها في الكتلة والمحاكاة ويمكن أن تتداخل حتى عندما نحاكي شخص يعمل المحاكاة. الكائن هو غرفة قياس يستخدم قائمة الأنتظار(door) للسماح له بالدخول إلى غرفة القياس. عندما يطلب شخص ما غرفة القياس وتكون مشغولة يجب أن ينتظر في قائمة الانتظار هذه (Wait (door)). وعندما يقوم شخص ما بالخروج من غرفة القياس الأول (إذا وجد) يتم تحريرها من قائمة الانتظار (Activate door.first) وإزالتها من قائمة الانتظار وفقا لذلك الباب (door.First.Out).
الشخص هو فئة فرعية من عملية ونشاطها يوصف بهانتظر(الوقت المتسغرق في استعراض المتجر والقت الذي قضي في غرفة قياس الملابس) ويستعد يأساليب الكائن المستخدم لغرفة القياس لطلب وترك غرفة القياس. البرنامج الرئيسي يخلق كل الكائنات وينشط جميع كائنات الشخص لوضعها في قائمة الانتظارالحدث. البرنامج الرئيسي ينتظر100 دقيقة من الوقت قبل أنهاء برنامج المحاكاة.