موضوع مقاله: اسنوبول | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # اسنوبول | مقدمه: اسنوبول (یک زبان سمبلیک و کاراکترگرا) در واقع تلفیقی از مجموعه زبانهای برنامه‌نویسی که بین سال‌های ۱۹۶۲ تا ۱۹۶۷ درآزماشگاه بل توسط افرادی نظیردیوید فاربر، رالف گریسولد و ایوان پلونسکی توسعه پیدا کرده‌اند می‌باشد که این کار در زبان اسنوبول۴ به اوج خودش رسید این زبان یکی از بیشمار زبان کاراکتر گراست که بین سالهای ۱۹۵۰تا۱۹۶۰ توسعه پیدا کرده‌است این درحالی است که بقیه زبانها دارای پردازنده کاراکتر تریس یا کامیت می‌بودند. | ## بخش 1: اسنوبول | SNOBOL۴ جدا از اکثر زبان‌های برنامه‌نویسی با داشتن الگوهای به عنوان یک نوع داده کلاس اول (به عنوان مثال یک نوع داده است که ارزش‌ها را می‌توان در تمام روش‌های مجاز به هر نوع داده دیگر در زبان برنامه‌نویسی دستکاری کرد) و با فراهم آوردن اپراتورها برای الحاق الگو و تناوب می‌ایستد. SNOBOL۴ کاملاً به‌طور گسترده‌ای در دانشگاه‌های بزرگ آمریکا در اواخر ۱۹۶۰s و ۱۹۷۰s زود آموزش داده شد و به‌طور گسترده‌ای در ۱۹۷۰s و ۱۹۸۰s به عنوان یک زبان دستکاری متن در علوم انسانی مورد استفاده قرار گرفت. در سال‌های اخیر استفاده از آن به عنوان زبان جدیدتری مانند AWK و پرل پژمرده دستکاری رشته با استفاده از عبارات منظم مد روز ساخته شده‌اند. الگوهای SNOBOL۴ خانواده را شامل گرامرهای BNF، که معادل دستور زبان مستقل از متن و قوی تر از عبارات منظم است " عبارات منظم " در نسخه‌های فعلی از AWK و پرل در واقع پسوند عبارات منظم در معنای سنتی است، اما به‌طور منظم. با این حال، از پرل ۵٫۱۰ (در دسامبر ۲۰۰۷ منتشر شد)، پرل از عبارات منظم می‌تواند بازگشتی. این یک گرامر ساده، فقط یک نوع داده، رشته، بدون توابع، و هیچ اعلامیه‌ها و کنترل خطا بسیار کم است. | ## بخش 2: اسنوبول | با این حال با وجود سادگی آن و طبیعت «شخصی» آن استفادهٔ این زبان را زیاد کرده‌است، و باعث شروع به گسترش به گروه‌های دیگرشد. به عنوان مثال یکی از نویسندگان تصمیم گرفت تا آن را گسترش دهد و به صورت مرتب آن را به گسترش بدهد. و آن را بازنویسی کرد وچندین توابع به آن افزود، از هر دو استاندارد و تعریف شده توسط کاربر، و در نتیجه به عنوان SNOBOL۳ منتشر شد. در SNOBOL۲ قابلیت تعریف توابع توسط کاربر وجود نداست به همین دلیل محبوب نشد؛ و به دلیل اینکه در SNOBOL۳ قابلیت تعریف توابع وجود داشت به سرعت بین برنامه نویسان محبوب شد و برای دیگر کامپیوترها از IBM ۷۰۹۰ توسط دیگر برنامه نویسان بازنویسی شد. نویسندگان زبان SNOBOL درخواست بیشتر و بیشتر از جانب برنامه نویسان برای گسترش زبان را دریافت کردند. آن‌ها همچنین شروع به دریافت شکایات در مورد ناسازگاری‌ها و اشکالات در نسخه‌هایی که برای آن‌ها نوشته نشده بود دریافت کردند. | ## بخش 3: اسنوبول | برای پرداختن به این مشکلات و برای استفاده از کامپیوترهای جدید که در اواخر ۱۹۶۰s معرفی شده بود، تصمیم به توسعه SNOBOL۴ که شامل بسیاری از انواع داده‌های اضافی و ویژگی‌هایی براساس یک ماشین مجازی که اجازه می‌دهد تا برنامه قابل حمل (Portable) شود. با این حال ویژگی‌های ماکرودر اسمبلر استفاده شد تا دستورالعملهای ماشین مجازی که مربوط به پیاده‌سازی زبان SNOBOL می‌بود استفاده شود؛ که این ویژگی قابل حمل بودن در زبان را ارتقاء داد. ویژگی‌های زبان SNOBOL۴: از تعدادی از انواع داده‌ها، مانند اعداد صحیح و اعداد دقت محدود واقعی، رشته‌ها، الگوها، آرایه‌ها، و جدول (آرایه‌های انجمنی)، و همچنین به برنامه‌نویس اجازه تعریف انواع داده‌های اضافی و توابع جدید را می‌دهد. goto می‌تواند یک پرش مطلق یا مشروط در موفقیت یا شکست در ارزیابی یک موضوع، ارزیابی الگوی، بازی الگو، ارزیابی شیو یا انتساب نهایی باشد. یک الگوی ساده تنها یک رشته متن (مثلاً " ABCD ") است، اما الگوی پیچیده ممکن است یک ساختار بزرگ توصیف، به عنوان مثال، دستور زبان کامل از زبان کامپیوتر باشد. | ## جمع‌بندی | ایجاد یک اسمبلر ماکرو و یک مترجم برای یک قطعه به‌طور کاملاً نظری از سخت‌افزار که چند صد خط است، می‌تواند با یک دستور جدید که با یک خط نوشته شده اضافه گردد.