SNOBOL - SNOBOL

SNOBOL
ParadigmaImperativ, tuzilmagan
LoyihalashtirilganDevid J. Farber, Ralf E. Grisvold va Ivan P. Polonskiy
TuzuvchiDevid J. Farber, Ralf E. Grisvold, Ivan P. Polonskiy va Bell laboratoriyalari
Birinchi paydo bo'ldi1962; 58 yil oldin (1962)
Barqaror chiqish
SNOBOL4 / 1967; 53 yil oldin (1967)
Veb-saytwww.snobol4.org
Mayor amalga oshirish
SNOBOL, SPITBOL
Ta'sirlangan
COMIT
Ta'sirlangan
AWK, SL5, Belgisi, bs, Lua

SNOBOL ("StriNg Oriented and symBOlic Language") - bu bir qator dasturlash tillari 1962-1967 yillarda ishlab chiqilgan AT & T Qo'ng'iroq laboratoriyalari tomonidan Devid J. Farber, Ralf E. Grisvold va Ivan P. Polonskiy, SNOBOL4 bilan yakunlandi. Bu 1950-1960 yillar davomida ishlab chiqilgan qator qator matnlarga yo'naltirilgan tillardan biri edi; boshqalar kiritilgan COMIT va TRAC.

SNOBOL4 o'z davrining aksariyat dasturlash tillaridan ajralib turadi birinchi toifadagi ma'lumotlar turi (ya'ni qiymatlari dasturlash tilidagi boshqa har qanday ma'lumot turiga ruxsat berilgan barcha usullar bilan boshqarilishi mumkin bo'lgan ma'lumotlar turi) va naqshlarni operatorlar bilan ta'minlash orqali birlashtirish va almashinish. SNOBOL4 naqshlari ob'ektning bir turi bo'lib, keyinchalik shunga o'xshash turli xil manipulyatsiyalarni tan oladi ob'ektga yo'naltirilgan tillar kabi JavaScript kimning naqshlari sifatida tanilgan doimiy iboralar. Bundan tashqari, bajarish paytida hosil bo'lgan SNOBOL4 satrlari dastur sifatida ko'rib chiqilishi yoki talqin qilinishi yoki kompilyatsiya qilinishi va bajarilishi mumkin (xuddi baholash boshqa tillarning funktsiyasi).

SNOBOL4 1960-yillarning oxiri va 70-yillarning boshlarida AQShning yirik universitetlarida ancha keng o'qitilgan va 1970-80-yillarda matn manipulyatsiyasi tili sifatida keng qo'llanilgan. gumanitar fanlar.

1980-1990 yillarda yangi tillar sifatida uning ishlatilishi sustlashdi AWK va Perl yordamida simli manipulyatsiyani amalga oshirdi doimiy iboralar moda. SNOBOL4 naqshlari yig'iladi BNF ga teng bo'lgan grammatikalar kontekstsiz grammatikalar va oddiy iboralarga qaraganda kuchliroq.[1] AWK va Perlning amaldagi versiyalaridagi "doimiy iboralar" aslida oddiy iboralarning kengaytmasi an'anaviy ma'no, ammo doimiy iboralar, SNOBOL4 naqshlaridan farqli o'laroq, rekursiv emas, bu SNOBOL4 naqshlariga aniq hisoblashda ustunlik beradi.[2] (Rekursiv iboralar 2007 yil dekabrida chiqarilgan Perl 5.10 da paydo bo'lgan.[3][4])

Keyinchalik SL5 (1977)[5] va Belgisi (1978) tillar Griswold tomonidan SNOBOL4 naqshlariga mos keladigan orqaga qaytishni yanada standartlarga moslashtirish uchun ishlab chiqilgan. ALGOL o'xshash tuzilish.


Rivojlanish

SNOBOL1

Dastlabki SNOBOL tili uning mualliflari tomonidan polinomlarning ramziy manipulyatsiyasi bilan ishlashda foydalaniladigan vosita sifatida yaratilgan. Bu assotsiatsiya tilida yozilgan IBM 7090. U oddiy sintaksisga ega edi, faqat bitta ma'lumotlar turi, mag'lubiyat, funktsiyalar yo'q, deklaratsiyalar va xatolarni boshqarish juda kam edi. Biroq, soddaligi va "shaxsiy" xususiyatiga qaramay, undan foydalanish boshqa guruhlarga ham tarqaldi. Natijada, mualliflar uni kengaytirishga va uni tartibga keltirishga qaror qilishdi.

SNOBOL2

SNOBOL2 mavjud edi, ammo u foydalanuvchi tomonidan aniqlangan funktsiyalarsiz qisqa muddatli qidiruv rivojlanish versiyasi edi va hech qachon chiqarilmadi.

SNOBOL3

Ular SNOBOL1-ni qayta yozdilar va standart va foydalanuvchi tomonidan aniqlangan funktsiyalarni qo'shdilar va natijani SNOBOL3 deb e'lon qildilar. SNOBOL3 juda mashhur bo'lib, boshqa dasturchilar tomonidan IBM 7090 dan boshqa kompyuterlar uchun qayta yozilgan. Natijada bir-biriga mos kelmaydigan bir necha lahjalar paydo bo'ldi.

SNOBOL4

SNOBOL3 ommalashib borayotganligi sababli mualliflar tilni kengaytirish uchun ko'proq so'rovlar oldilar. Shuningdek, ular o'zlari yozmagan versiyalardagi nomuvofiqlik va xatoliklar to'g'risida shikoyatlarni qabul qilishni boshladilar. Ushbu muammoni hal qilish va 1960-yillarning oxirlarida paydo bo'lgan yangi kompyuterlardan foydalanish uchun SNOBOL4-ni ko'plab qo'shimcha ma'lumotlar turlari va xususiyatlarga ega, ammo virtual mashina kompyuterlarda portativlikni yaxshilashga imkon berish.[6] SNOBOL4 tilidagi tarjimon hali ham assambleya tilida yozilgan. Ammo virtual mashinaning ko'rsatmalarini aniqlash uchun assemblerning so'l xususiyatlari ishlatilgan SNOBOL Menamalga oshirish Lazob, SIL. Bu tarjimonni joylashtirgan virtual mashinani virtual ko'rsatmalarini so'l assambleyeri yoki haqiqatan ham yuqori darajadagi tilni o'z ichiga olgan har qanday mashinada qayta tiklash orqali portlashni nisbatan osonlashtirish orqali tilning portativligini ancha yaxshiladi.[7]

Mashinadan mustaqil SIL tili mag'lubiyatni manipulyatsiya qilish makroslarini umumlashtirish sifatida paydo bo'ldi Duglas Makilroy, dastlabki SNOBOL dasturida juda ko'p ishlatilgan. 1969 yilda McIlroy SNOBOL4 ga jadval turini qo'shishni talab qilib yana tilga ta'sir qildi.[8][9]


SNOBOL4 xususiyatlari

SNOBOL zamonaviy protsessual tillardan tubdan farq qiladigan format va dasturlash uslubi bilan ajralib turadi Fortran va ALGOL.

SNOBOL4 ichki o'rnatilgan bir qator qo'llab-quvvatlaydi ma'lumotlar turlari, kabi butun sonlar va cheklangan aniqlik haqiqiy raqamlar, torlar, naqshlar, massivlar va jadvallar (assotsiativ massivlar), shuningdek, dasturchiga qo'shimcha va yangi turlarini aniqlashga imkon beradi funktsiyalari. SNOBOL4-ning dasturchi tomonidan aniqlangan ma'lumotlar turi moslamasi o'sha paytda rivojlangan edi - bu avvalgi yozuvlarga o'xshaydi COBOL va keyinroq Paskal dasturlash tillari.

Barcha SNOBOL buyruq satrlari shaklga ega

yorliq mavzusi namunasi = ob'ekt : o'tkazish

Besh elementning har biri ixtiyoriydir. Umuman olganda Mavzu ga mos keladi naqsh. Agar ob'ekt mavjud bo'lsa, har qanday mos keladigan qism o'rniga ob'ekt almashtirish qoidalari orqali. The o'tkazish mavzuni baholash, naqshni baholash, naqshni moslashtirish, ob'ektni baholash yoki yakuniy topshiriqning muvaffaqiyati yoki muvaffaqiyatsizligiga bog'liq bo'lgan mutlaq tarmoq yoki shartli filial bo'lishi mumkin. Bu, shuningdek, dastur davomida o'zi tomonidan yaratilgan va tuzilgan kodga o'tish bo'lishi mumkin.

SNOBOL naqsh juda sodda yoki o'ta murakkab bo'lishi mumkin. Oddiy naqsh - bu shunchaki matnli satr (masalan, "ABCD"), ammo murakkab naqsh, masalan, kompyuter tilining to'liq grammatikasini tavsiflovchi katta tuzilish bo'lishi mumkin. SNOBOL-da til tarjimonini deyarli to'g'ridan-to'g'ri a dan amalga oshirish mumkin Backus-Naur shakli ozgina o'zgarishlar bilan, uni ifodalash. Iqtisodiy to'liq nazariy qism uchun so'l assambleyer va tarjimonni yaratish bir necha yuz satrdan iborat bo'lishi mumkin, yangi ko'rsatma bitta qator bilan qo'shiladi.

Murakkab SNOBOL naqshlari aksariyat naqshlarga mos keladigan tillarda ishlatiladigan ibtidoiy doimiy iboralar yordamida amaliy yoki imkonsiz bo'lishi mumkin bo'lgan ishlarni bajarishi mumkin. Ushbu kuchning bir qismi "SPITBOL kengaytmalari" deb nomlanadi (shu vaqtdan beri ular asl SNOBOL 4 tilining barcha zamonaviy dasturlarida ham mavjud), ammo ularsiz bir xil kuchga erishish mumkin. Ushbu quvvatning bir qismi naqshlarni moslashtirish jarayonida ishlab chiqarilishi mumkin bo'lgan nojo'ya ta'sirlardan kelib chiqadi, shu jumladan ko'plab oraliq / taxminiy taalukli natijalarni tejash va naqshlarni moslashtirish paytida foydalanuvchi tomonidan yozilgan funktsiyalarni chaqirish qobiliyati, deyarli har qanday kerakli ishlov berishni amalga oshirishi mumkin, va keyin uzilib qolgan naqsh mosligi davom etayotgan yo'nalishga ta'sir qiladi, yoki hattoki mos keladigan operatsiya davomida naqshning o'zini o'zgartiradi. Naqshlarni boshqa har qanday birinchi darajali ma'lumotlar elementlari singari saqlash mumkin va ularni birlashtirish, boshqa naqshlar ichida ishlatish va juda murakkab va murakkab naqshli iboralarni yaratish uchun ishlatish mumkin. Masalan, "to'liq ism va xalqaro pochta manziliga" mos keladigan SNOBOL4 naqshini yozish mumkin, bu odatiy iboralardan foydalanishga urinishdan ham ustundir.

SNOBOL4 naqshini moslashtirishda ishlatilganga o'xshash orqaga qaytish algoritmi ishlatiladi mantiqiy dasturlash til Prolog orqali naqshga o'xshash konstruktsiyalarni taqdim etadi DCGlar. Ushbu algoritm SNOBOL dasturini mantiqiy dasturlash tili sifatida ko'p tillarda bo'lgani kabi foydalanishni osonlashtiradi.

SNOBOL o'zgaruvchilar, satrlar va ma'lumotlar tuzilmalarini bitta holda saqlaydi axlat yig'ilgan uyum

Namunaviy dasturlar

"Salom, dunyo!" dastur quyidagicha bo'lishi mumkin ...

          Chiqish = "Salom Dunyo!"OXIRI

Foydalanuvchining ismini so'rash va undan keyin uni chiqish gapida ishlatish uchun oddiy dastur ...

          Chiqish = "Ismingiz nima?"          Foydalanuvchi nomi = KIRITISH          Chiqish = "Rahmat, " Foydalanuvchi nomiOXIRI

Uchta mumkin bo'lgan natijalarni tanlash uchun ...

          Chiqish = "Ismingiz nima?"          Foydalanuvchi nomi = KIRITISH          Foydalanuvchi nomi "J"                                             :S(SEVGI)          Foydalanuvchi nomi "K"                                             :S(NAFRAT)MEH       Chiqish = "Salom" Foydalanuvchi nomi                                 :(OXIRI)SEVGI      Chiqish = "Siz bilan uchrashganimiz naqadar yaxshi" Foydalanuvchi nomi               :(OXIRI)NAFRAT      Chiqish = "Oh. Bu siz," Foydalanuvchi nomiOXIRI

Boshqa narsalar kelmaguncha kirishni talab qilishni davom ettirish uchun ...

          Chiqish = "Ushbu dastur sizdan shaxsiy ismlaringizni so'raydi"          Chiqish = "qaytish tugmachasini bermasdan bosguncha"          NameCount = 0                                            :(GETINPUT)YANA     NameCount = NameCount + 1          Chiqish = "Ism" NameCount ": " Shaxsiy ismGETINPUT  Chiqish = "Iltimos, menga nom bering" NameCount + 1           Shaxsiy ism = KIRITISH          Shaxsiy ism LEN(1)                                      :S(YANA)          Chiqish = "Tugadi." NameCount "ismlar so'raldi."OXIRI

Amaliyotlar

Klassik dastur PDP-10; u o'rganish uchun ishlatilgan kompilyatorlar, rasmiy grammatikalar va sun'iy intellekt, ayniqsa mashina tarjimasi va mashinani tushunish tabiiy tillar. Dastlabki dastur Bell IBs-da IBM 7090-da bo'lib, Holmdel, NJ SNOBOL4 ko'chirish uchun maxsus ishlab chiqilgan; birinchi dastur 1966 yilda IBM 7094 da boshlangan, ammo 1967 yilda IBM 360 da yakunlangan. Bu ko'plab boshqa platformalarda tezkor ravishda namoyish qilingan.

Odatda an sifatida amalga oshiriladi tarjimon uning juda yuqori darajadagi ba'zi xususiyatlarini amalga oshirish qiyinligi sababli, lekin mavjud kompilyator, SPITBOL kompilyatori, bu tarjimon deyarli barcha imkoniyatlarni taqdim etadi.

The Chivin Ada Tuzuvchi Spitbol mag'lubiyatga ishlov berishning barcha semantikasini amalga oshiradigan paket (GNAT.Spitbol) bilan ta'minlangan. Buni Ada dasturidan chaqirish mumkin.

Uchun fayl muharriri Michigan Terminal tizimi (MTS) SNOBOL4 naqshlari asosida naqshlarni moslashtirishni ta'minladi.[10]

Hozirda bir nechta dastur mavjud. Fil Budne tomonidan yozilgan C formatidagi SNOBOL4 - bu deyarli har qanday platformada ishlashga qodir bo'lgan bepul, ochiq manbali dastur.[11] Catspaw, Inc turli xil kompyuter platformalari, shu jumladan DOS, Macintosh, Sun, RS / 6000 va boshqalar uchun SNOBOL4 tilini tijorat maqsadlarida amalga oshirishni ta'minladi va ushbu dasturlar endi Catspaw-dan bepul foydalanish mumkin. Minnesota SNOBOL4, Viktors Berstis tomonidan, original IBM mainframe versiyasiga (hatto Fortranga o'xshash FORMAT bayonotini qo'llab-quvvatlashni o'z ichiga olgan) kompyuterni eng yaqin amalga oshirish bepul.[12]

Garchi SNOBOLning o'zi yo'q tizimli dasturlash xususiyatlari, chaqirilgan SNOBOL protsessori Snostorm ostida foydalanish uchun Fred G. Svars tomonidan 1970-yillarda ishlab chiqilgan va amalga oshirilgan Michigan Terminal tizimi (MTS) da Michigan universiteti.[13] Snostorm MTS ishlaydigan sakkizdan o'n beshgacha saytlarda ishlatilgan. Shuningdek, u mavjud edi London universiteti kolleji (UCL) 1982 yildan 1984 yilgacha.

Snocone tomonidan Endryu Koenig blok tuzilgan konstruktsiyalarni SNOBOL4 tiliga qo'shadi. Snocone - bu SNOBOL4-ning to'g'ri to'plami emas, balki o'zi uchun mo'ljallangan dasturlash tili.[14]

SPITBOL dasturi, shuningdek, an'anaviy tuzilgan dasturlash kalit so'zlaridan foydalanmaslik bilan birga, odatda "tuzilgan dasturlash" deb hisoblangan ko'plab teng imkoniyatlarni ta'minlash uchun ishlatilishi mumkin bo'lgan bir qator xususiyatlarni joriy etdi, ayniqsa, agar / then / else turi konstruktsiyalar mavjud bo'lsa. Keyinchalik ushbu xususiyatlar so'nggi SNOBOL4 dasturlariga qo'shildi. Ko'p yillar davomida tijorat mahsuloti sifatida 2009 yil aprel oyida SPITBOL bepul dasturiy ta'minot sifatida chiqarildi GNU umumiy jamoat litsenziyasi.

Nomlash

Deyv Farberning so'zlariga ko'ra,[15] u, Grisvold va Polonskiy "oxir-oqibat SEXI ning Symbolic Exppression Interpreter nomiga etib kelishdi".

Bir kun kelib men tizimni yig'ish uchun ish topshirdim va odatdagidek mening ishimda karta - kemadagi birinchi karta, men BTL standartlarida ishimga va ismimga - SEXI Farberga zarba berdim.

Comp Center qizlaridan biri bunga qarab: "Siz nima deb o'ylaysiz", deb hazil bilan aytdi.

Bu bizga yana bir ism kerakligini aniq ko'rsatdi !! Biz o'tirdik va suhbatlashdik, kofe ichdik va rezina lentalarni otdik, juda ko'p vaqtdan keyin kimdir aytdi - ehtimol Ralf - "Bizda yo'q Snowballning do'zaxdagi imkoniyati Barchamiz birdaniga: "BIZ BILDI - SNOBOL" deb baqirdilar BOL tillari. Keyin biz nimani anglatishini bilish uchun fikrimizni cho'zdik.

Umumiy backronimlar "SNOBOL" - "simli yo'naltirilgan ramziy til"[16] yoki (a sifatida kvazi-initsializm ) 'StriNg yo'naltirilgan symBOlic tili'.[17]

Shuningdek qarang

Adabiyotlar

  1. ^ Gimpel, J. F. 1973. Diskret naqshlar nazariyasi va ularni SNOBOL4 da amalga oshirish. Kommunal. ACM 16, 2 (1973 yil fevral), 91-100. DOI =http://doi.acm.org/10.1145/361952.361960
  2. ^ "Doktor Dobb's: O'zining kod kodini o'zgartiradigan dasturlar; yoki: Snobol Foot hazili". Dobbscodetalk.com. Olingan 2011-12-04.
  3. ^ Aloqa tafsilotlari. "perlre". perldoc.perl.org. Olingan 2011-12-04.
  4. ^ "Rekursiv Regex qo'llanmasi". Olingan 2017-03-19.
  5. ^ Ralf E. Grisvold, Devid R. Xanson, "SL5-ga umumiy nuqtai", SIGPLAN xabarnomalari 12: 4: 40-50 (1977 yil aprel)
  6. ^ 1-bobga qarang SNOBOL4-ning so'l dasturini amalga oshirish
  7. ^ SNOBOL4 virtual mashinaning ko'rsatmalarini qayta yaratish uchun C yordamida amalga oshirildi.
  8. ^ Grisvold, Ralf (1978). "SNOBOL dasturlash tillarining tarixi" (PDF). ACM SIGPLAN xabarnomalari. ACM. 13 (8): 275–308. ISSN  0362-1340.
  9. ^ Vekselblat, Richard L. (2014). Dasturlash tillari tarixi. Akademik matbuot. p. 784.
  10. ^ MTS fayl muharriri bilan tanishish, Michigan universiteti hisoblash markazi, 1986 yil.
  11. ^ http://www.snobol4.org/
  12. ^ http://www.berstis.com/snobol4.htm
  13. ^ "SNOSTORM", MTS 9-jild: MTS-da SNOBOL4, Hisoblash markazi, Michigan universiteti, 1979 yil iyun, 99-120 betlar. Qabul qilingan 1 sentyabr 2014 yil.
  14. ^ "Snocone dasturlash tili", Endryu Koenig, USENIX (Portlend, Oregon), 1985 yil iyun. 2014 yil 2 sentyabrda olingan.
  15. ^ SNOBOL-da Vikipediya yozuvini o'qish - Vikipediya emas Haqiqiy hikoya (Deyv Farber, Qiziqarli odamlar pochta ro'yxati, 2008 yil 26-dekabr).
  16. ^ Kompyuterlar va gumanitar fanlar 1:158, 1967.
  17. ^ Jek Belzer va boshq., eds., Kompyuter fanlari va texnologiyalar ensiklopediyasi, CRC Press, 1979 yil, ISBN  0-8247-2263-9. 13:173 Google Books-da

Qo'shimcha o'qish

  • Emmer, Mark B. SNOBOL4 +: Shaxsiy kompyuter foydalanuvchisi uchun SNOBOL4 tili. Englewood Cliffs, NJ: Prentice Hall, 1985 (ISBN  0-13-815119-9).
  • Gimpel, Jeyms F. SNOBOL4-dagi algoritmlar. Nyu-York: Vili, 1976 (ISBN  0-471-30213-9); qayta nashr etilgan Salida, CO: Catspaw, 1986 (ISBN  0-939793-00-8).
  • Grisvold, Ralf E. SNOBOL4-ning so'l dasturini amalga oshirish. San-Frantsisko, Kaliforniya: W. H. Freeman va Company, 1972 (ISBN  0-7167-0447-1).
  • Grisvold, Ralf E., J. F. Poage va I. P. Polonskiy. SNOBOL4 dasturlash tili. Englewood Cliffs, NJ: Prentice Hall, 1968 (ISBN  0-13-815373-6).
  • Grisvold, Ralf E. SNOBOL4 da satrlar va ro'yxatlarni qayta ishlash: texnikasi va qo'llanilishi. Englewood Cliffs, NJ: Prentice Hall, 1975 (ISBN  0-13-853010-6).
  • Xokkey, Syuzan M. Gumanitar fanlar uchun Snobol dasturlash. Nyu-York: Clarendon Press; Oksford: Oksford universiteti matbuoti, 1985 (ISBN  0-19-824676-5).

Tashqi havolalar