جورج (زبان برنامهنویسی)
برخی از ویرایشها در این مقاله در چارچوب یک تکلیف دانشگاهی انجام شدهاند. این تکالیف توسط ؟ برای دانشجویان ؟ تعیین شدهاند. |
این مقاله، جورج (زبان برنامهنویسی)، اخیراً بهواسطهٔ فرایند ایجاد مقاله ایجاد شدهاست. بازبینیکننده در حال بستن درخواست است و این برچسب احتمالاً بهزودی برداشته میشود.
ابزارهای بازبینی: پیشبارگیری بحث اعلان به نگارنده |
خطای اسکریپتی: پودمان «AfC submission catcheck» وجود ندارد. "این مقاله در حال ترجمه از ویکی انگلیسی است لطفا حذف نشود."
جورج (به انگلیسی GEORGE) یک زبان برنامه نویسی است که توسط چارلز لئونارد هامبلین در سال 1957 ابداء شد.
جورج به صورت پوش داون پاپآپ (push-down popup stack) برای عملیات حسابی طراحی شده بود و به شکل نشانهگذاری لهستانی معکوس استفاده می کرد.
این زبان شامل حلقه ها, زیر روال ها, شرطها, آرایهها و ماتریس ها بود.
عبارات جبری با استفاده از نشانهگذاری لهستانی معکوس نوشته شده بودند. بدین ترتیب، به صورت نوشته شده و به همینشکل برای سایر عملیاتهای حسابی تفریق، ضرب و تقسیم روند ادامه دارد.
عبارت جبری به شکل ax dup × × bx × + c +
، که در آن ' dup '
به معنای مقدار تکراری بود.
در ساختار فرم نشانهگذاری لهستانی معکوس، یک ساختاربرای ارزیابی فرمول به صورت ax dup × × bx × + c + (y)
وجود دارد.
کامپیوتر عبارت را به صورت زیر ارزیابی میکند: مقادیر a
و سپس x
به بالای ماشین پشتهای پوش میشود. ' dup '
باعث میشود یک کپی از بالاترین مقدار (x
) به بالای ماشین پشتهای پوش میشود. ضرب (×
) باعث میشود که دو مقدار بالا یعنی x
و x
حذف شده و ضرب شوند و حاصلضرب را به بالای پشته انباشته بازگرداند. ضرب دوم (×
) سپس باعث میشود که دو مقدار بالای پشته (یعنی a
و x**2
) ظاهر شده و ضرب شوند و حاصلضرب ( a×x**2
) به بالای پشته پوش شود. و به همین ترتیب اجزای باقی مانده از عبارت انجام میشوند. عملیات نهایی، یعنی (y
)، بدون تغییر وضعیت ماشین پشتهای، مقدار عبارت را به ذخیره سازی برمیگرداند.
با فرض اینکه مقدار بالای ماشین پشتهای فورا مورد نیاز نباشد، با استفاده از عملگر (;
) مقدار حذف میشود.
برنامه زیر با هشت مقدار خوانده میشود و مجموع آنها را به شکل زیر میشود:
0, 1, 8 rep (j) R + ] (P)
- خط اول با فشار دادن مقدار صفر به بالای ماشین پشتهای، مجموع را مقداردهی اولیه می کند.
- خط دوم یک حلقه را معرفی می کند، به صورت "برای 1 تا 8 تکرار j" گفته میشود و با براکت مربع خاتمه می یابد.
- در خط سوم، R باعث می شود یک عدد خوانده شود و به بالای ماشین پشتهای پوش شود، و علامت مثبت (+) باعث می شود که آن مقدار به مجموع (جزئی) اضافه شود و تنها مجموع جزئی در بالای ماشین پشتهای میماند.
- پس از پایان حلقه، (P) باعث می شود که مجموع نهایی روی یک کارت پانچ شود.
دستکاری بردارها و ماتریس ها نیاز به علامت گذاری زیرنویس دارد. در GEORGE، زیرنویس (ها) قبل از نام بردار یا ماتریس قرار دارند. بنابراین A(j) j | A
برنامه زیر 10 مقدار را در بردار a می خواند، سپس مربع های آن مقادیر را تشکیل می دهد و در نهایت آن مقادیر را چاپ می کند.
1, 10 R1 (a) 1, 10 rep (j) j | a dup * j | (a) ; ] 1, 10 P1 (a)
- در برنامه، خط اول بردار میخوند که ده مقدار را از a(1) تا a(10) می خواند.
- خط دوم یک حلقه را برای ده مقدار j معرفی می کند.
- خط سوم a(j) را واکشی می کند، آن را کپی می کند، آن دو مقدار را ضرب می کند و مربع را می دهد و سپس آن را در a(j) ذخیره می کند. به نقطه ویرگول (;) توجه کنید که ورودی بالایی را از ماشین پشتهای پاک میکند (یا لغو می کند). اگر این کار انجام نمیشد، ماشین پشتهای به تدریج با مربع های مقادیر پر می شود.
- خط آخر یک پانچ برداری (یعنی چاپ) برای نوشتن ده مربع است.
جدول کد نویسی GEORGE بالا به رونویسی یک برنامه بر روی کارت های پانچ کمک میکند.
عملیات های شرطی به صورت پرش نوشته می شود، به این صورت: اگر a > 0 به 5 برود (که اگر a بزرگتر از صفر باشد به برچسب 5 منتقل می شود) نوشته می شود.
0 a > 5 ↑
برچسب 5 با درج *5 در جای دیگر برنامه نشان داده شد. نقل و انتقالات بدون قید و شرط 5↑ نوشته میشوند.
فراخوانی های زیرمجموعه با فلش رو به پایین انجام شد، به عنوان مثال، برای فراخوانی زیربرنامه با برچسب 17، باید نوشت 17↓، جایی که برچسب 17 با استفاده از ستون 3 جدول بالا کدگذاری شده است.
یادداشت تاریخی[ویرایش]
در اولین نسخه اجرا شده در می 1957 در شرکت English Electric DEUCE ، همه مقادیر به صورت باینری نقطه ثابت در یک کلمه 32 بیتی با 16 مکان باینری ذخیره شدند.
در نسخه دوم که در سال 1958 معرفی شد، مقادیر به صورت ممیز شناور، با یک مقدار در هر کلمه نگهداری می شدند: 22 بیت برای مانتیس و 10 بیت برای توان.
شکلی از جدول کدگذاری مورد نیاز بود زیرا تجهیزات چاپ آن زمان فقط 26 حرف از الفبا، یک نقطه اعشار، علامت بعلاوه، علامت منفی و اسلش را ارائه میکرد.
منابع[ویرایش]
رده:زبانهای برنامهنویسی ساختهشده در ۱۹۵۷ (میلادی) رده:زبانهای برنامهنویسی رده:صفحات با ترجمه بازبینینشده
This article "جورج (زبان برنامهنویسی)" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:جورج (زبان برنامهنویسی). Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.