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

محتوای حذف‌شده محتوای افزوده‌شده
USER-PL 017 (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
USER-PL 017 (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
خط ۱۴:
 
:SNOBOL3 محبوب تر شد. نویسندگان درخواست بیشتر و بیشتر برای گسترش در زبان دریافت کردند. آنها همچنین شروع به دریافت شکایات در مورد ناسازگاری ها و اشکالات در نسخه های که آنها نوشته نشده بود کردند. برای پرداختن به این و به استفاده از کامپیوتر های جدید که در اواخر 1960s معرفی شده ، تصمیم به توسعه SNOBOL4 با بسیاری از انواع داده های اضافی و ویژگی هایی براساس یک ماشین مجازی که اجازه می دهد تا برنامه قابل حمل شود.
:مترجم زبان SNOBOL4 در زبان اسمبلی نوشته شده است. با این حال ویژگی های ماکرودر اسمبلراستفاده شد تا دستورالعملهای ماشین مجازی که مربوط به پیاده سازی زبان SNOBOL می بود استفاده شد. این ویژگی قابل حمل بودن در زبان را ارتقاء داد و آن را نسبتاً به پورت ماشین مجازی است که با ایجاد دستورالعمل های مجازی خود را بر روی هر دستگاه که شامل یک اسمبلر ماکرو یا در واقع یک زبان سطح بالا به میزبانیترجمه آسان بهبود.
== ویژگی های زبان ==
 
SNOBOL4: از تعدادی از ساخته شده است در انواع داده ها، مانند اعداد صحیح و اعداد دقت محدود واقعی ، رشته ها ، الگوها، آرایه ها، و جدول ( آرایه های انجمنی ) ، و همچنین اجازه می دهد تا برنامه نویس برای تعریف انواع داده های اضافی و توابع جدید . برنامه نویس تعریف نوع داده امکانات SNOBOL4 در پیشرفته بود زمان آن است که شبیه به قبلی را گرفتند، کوبول و سوابق بعد پاسکال است .
 
همه خطوط دستور SNOBOL فرم Label1 موضوع الگوی = شیء : ( رفتن به Label2 ) هر یک از این پنج بخش اختیاری است. به طور کلی، این موضوع در برابر الگوی همسان . اگر جسم در حال حاضر است ، هر بخشی همسان توسط جسم از طریق قوانین برای جایگزینی جایگزین شده است. رفتن به می تواند یک شاخه مطلق و یا مشروط در موفقیت یا شکست ارزیابی موضوع ، ارزیابی الگوی، بازی الگو ، ارزیابی شیو یا انتساب نهایی است.
 
الگوی SNOBOL می تواند بسیار ساده و یا بسیار پیچیده است. یک الگوی ساده تنها یک رشته متن (مثلا " ABCD " ) است، اما الگوی پیچیده ممکن است یک ساختار بزرگ توصیف ، به عنوان مثال، دستور زبان کامل از زبان کامپیوتر است. ممکن است که به پیاده سازی یک مترجم زبان در SNOBOL تقریبا به طور مستقیم از یک عبارت به صورت Backus - Naur از آن، با چند تغییر . ایجاد یک اسمبلر ماکرو و یک مترجم برای یک قطعه به طور کامل نظری از سخت افزار می تواند به عنوان کوچک که چند صد خط ، با یک دستور جدید که با یک خط اضافه شده است.
 
الگوهای SNOBOL مجتمع می تواند چیزهایی را که غیر عملی یا غیر ممکن است با استفاده از عبارات بیشتر بدوی به طور منظم مورد استفاده در اکثر زبان های دیگر تطبیق الگو انجام دهد. برخی از این قدرت ناشی از به اصطلاح "توسعه SPITBOL " ( که از در در واقع تمام پیاده سازی های مدرن از اصل SNOBOL 4 زبان نیز گنجانیده شده است ) ، اگر چه ممکن است برای رسیدن به همان قدرت بدون آنها. بخشی از این قدرت می آید از عوارض جانبی که ممکن است برای تولید در طول عملیات تطبیق الگو ، از جمله صرفه جویی در مورد مطابق با متوسط ​​/ آزمایشی متعدد و توانایی فراخوانی توابع نوشته شده کاربر در هنگام بازی در الگویاست که می تواند تقریبا هر پردازش مورد نظر را انجام دهد، و پس از آن جهت در حال انجام این بازی در الگوی قطع طول می کشد ، و یا حتی به واقع الگوی خود را در این عملیات مطابق با تغییر تاثیر می گذارد. الگوهای می تواند مانند هر مورد دیگر کلاس اول داده های ذخیره شده ، و می تواند طولانی، مورد استفاده در الگوهای دیگر، و مورد استفاده برای ایجاد عبارات الگوی بسیار پیچیده و پیچیده . ممکن است که به ارسال ، به عنوان مثال، یک الگوی SNOBOL4 که با " نام کامل و بین المللی آدرس پستی پستی " است، که فراتر از هر چیزی است که عملی که حتی تلاش با استفاده از عبارات منظم .
 
SNOBOL4 الگوی تطبیق استفاده از یک الگوریتم backtracking می شبیه به استفاده می شود که در زبان برنامه نویسی منطقی پرولوگ ، فراهم می کند که ساختار مانند الگوی طریق DCGs . این الگوریتم می سازد آن را آسان تر به استفاده از SNOBOL به عنوان یک زبان برنامه نویسی منطقی از این مورد برای بسیاری از زبان است .
 
متغیرهای فروشگاه SNOBOL ، رشته ها و ساختارهای داده ای در یک توده ، جمع آوری زباله تنها.
 
SNOBOL رقبای APL برای تمایز خود را در قالب و سبک های برنامه نویسی ، در هر دو، اساسا برخلاف چند زبان رویهای "استاندارد" مانند BASIC ، فرترن، یا C.
[[http://en.wikipedia.org/wiki/Snobol]]
[[رده:نرم‌افزارهای نوشته‌شده با اسمبلی]]