Автор: Цветан Манолов

snobolЕзик за програмиране – това е множество от ключови думи (речник) и система от правила (граматически и синтактични) за конструиране на оператори. Операторите се състоят от групи или редове числа, букви, препинателни знаци и други символи, с помощта на които хората могат да съобщтят своите команди на компютъра.
Компютрите разбират само две неща – нула и единица. За сметка на това те са в състояние да изпълнят множество полезни задачи като манипулират изключително бързо тези битове с информация. По времето на първите компютри процесът на програмиране се е свеждал до това, операторът да набере последователности от нули и единици с помощта на превключватели на предния панел.
От само себе си се разбира, че по това време и дума не е могло да става за дружелюбен потребителски интерфейс или за приемлива ефективност. Именно за да улеснят комуникацията на хората с компютъра са създадени езиците за програмиране. Те реализират няколко важни идеи:
– Представят операторите в по-разбираем за потребителите вид, което съществено опростява процеса на програмиране. За да разделим едно число на друго ние ползваме няколко символа, но за компютъра това са десетки операции.
– Позволяват на променливите и константите да бъдат присвоени имена, подсказващи тяхното значение. Така програмите са разбираеми и кодът може по-лесно да се проследи за откриване на грешки или за оптимизация.

На най-ниско ниво, нулите и единиците на машинния код не могат да се считат за език. Първият истински език за програмиране е Асемблер. За всеки тип компютър той е бил различен.
За общите операции Асемблер използва съкращения от типа на ADD, MOV, JMP, след които следват адресите на един или няколко параметри. Езикът заменя числовите адреси с разбираеми имена, което е съществено улеснение. Наричат Асемблер език от ниско ниво, тъй като той предоставя пълен достъп до базовите операции на компютъра. Затова има ситуации, в които е по-подходящ от всеки друг език и в тези случаи все още се използва.
Ако разчитаме на езиците от ниско ниво, ще е трудно да направим програма, която да работи на два различни компютъра. Би трябвало да я преписваме, в съответствие с набора команди на втората машина. Затова се ползват езици от по-високи нива, способни да се адаптират към различните компютри, чрез друга програма наречена компилатор.
Компилаторът преобразува приложението в машинен код и го съхранява като файл. Това може да се постигне и чрез интерпретатор, който обаче работи „в движение“, без да съхранява получения машинен код. Компилаторите и интерпретаторите също са различни за всеки тип компютър, но все пак могат да се напишат веднъж и после да се ползват за много програми написани на даден език от високо ниво.
От този тип езици първи стана известен Fortran (името е съкращение от Formula Translation – преобразуване на формули).

Разпространение
Съществуват няколко хиляди езици за програмиране, но само няколко са широко използвани. Голямото многообразие идва от различните цели, преследвани при създаването на един или друг език:

– Да се опрости и улесни обработката на конкретни видове информация, като символни
Низове (Snobol)

Първият език за програмиране SNOBOL е бил създаден и развит от Дейвид Фарбер, Ралф Грисуорд и Иван Полонски в лабораториите Бел през 1962год. Преди да се нарече SNOBOL, езикът за програмиране е носел името SEXI – String Expression Interpreter.Веднъж Фарбер бил чут да казва името SNOBOL, така то е започнало да влиза в употреба по времето, когато оригиналната статия за JACM е била публикувана. Името очевидно е било избрано, когато един от истинските изобретатели е направил заявление: „Тази програма ще има по-голям шанс, отколкото една снежна топка в ада на…”

SNOBOL осигурява на програмиста богат асортимент от характеристики, включително и екзотични. Като резултат е възможно да използваме SNOBOL  като език за обектно-ориентиране, логичен език за програмиране, функционален или стандартно императивен език и всичко това става само със смяна на някоя от характеристиките, използвана за направата на програмата. SNOBOL също така свързва нишки, които са ситуирани една до друга в аргумент, запазва ги на групички в паметта и по този начин освобождава програмистите от притеснения по въпроса за разпределението и групирането на нишките.

В практиката това се извършва от интерпретатор поради трудността, която се открива в изпълнението на някои от особеностите, които са на сравнително по-високо ниво от други, но затова има и компилатор, SNOBOL компилатор, който осигурява почти всички необходими приспособления, нужни на интерпретатора.

Оригиналната система на SNOBOL е била създадена в BEFAP и събрана за IBM 7090.Основният езиков дефект е била липсата на съставни функции. Новата реализация на SNOBOL отстранява този дефект и създава версията SNOBOL2(1964г.)Програмист добавя и дефинира нови функции и така се появява и  SNOBOL3 (1965г.)
SNOBOL3 е изпратен на IBM 7040/7044 и независимите изпълнения са били направени за други машини включително Burroughs 5500q CDC 3600Q IBM 1620, DEC PDP – 6, RCA 601 и SDS 930.Ранните версии на Unix идват с интерпретатор, наречен сно. Множеството изпълнения причинили разпространение на езикови диалекти – съзнателни и несъзнателни.

Най-скорошното изпълнение на SNOBOL3 (в Java)е било направено от Денис Хеймбигнер от Лабораторията за Софтуерно Инжинерно Проучване в Департамента по Компютърни науки в университета в Колорадо.

Настъпването на трето поколение компютри с по-голяма памет и по-бърз процесор е осигурило и компютри, с които да работи SNOBOL4 и допълнителните елементи познати на SNOBOL4, а именно: подобрени образци, цифрената част на типове данни, списъци, таблици.

Работата върху SNOBOL4 започва през 1966г. и е трябвало да бъде преносима по начало. Изпълнителният език SNOBOL или SIL е трябвало да бъде реализиран като съставен макро тип. Тази негова реализация понякога е наричана Macro SNOBOL4.  Изпълнението започва от IBM 7094, след което се мести в MULTICS – Virtual Memory System on the GE 645. След като лабораториите Бел изтеглили проекта от MULTICS, развитието продължило в IBM System/360. Macro SNOBOL4 е изпратен на повече от 50 системи, включително: CDC 6600, GE 635, UNIVAC 1108, RCA Spectra 70, Ferranti Atlas 2, SDS Sigma 7, DEC PDP-10, Burroughs 6700, Multics и много други.

Macro SNOBOL4 не е бил добре ситуиран между малките машини и не е могъл да се намести в 16-битовото адресно пространство на много микрокомпютри. Macro SNOBOL4 се свързва с 8086 (IBM PC) включително Catspaw ”Vanilla SNOBOL4” и SNOBOL4 Minnesota SNOBOL4.

Версията SNOBOL4 е четвъртото и последното въплъщение на такава серия от специфични целесъобразни езици за програмиране.

Езиковият вариант на SNOBOL4 осигурява голям брой типове данни като например – цели числа и с ограничена прецизност реални числа, линии, образци, списъци, таблици и също така позволява на програмиста да определи допълнителните типове данни и нови функции. Приспособлението на SNOBOL4 за дефиниране на типове данни се е подобрило през времето.

SNOBOL4 е доста различен от основния поток езици за програмиране по това време, защото притежава първокласни образци на типове данни (типове данни, чийто стойности могат да бъдат използвани по всякакви начини допуснати до всякакъв друг вид типове данни в езика за програмиране) и чрез осигуряване на оператори, които да отговарят за свързаността и последователността на образците.

Един образец на SNOBOL4 може да бъде много прост или изключително сложен. Простият образец е текстова линия, а комплексния образец може да бъде голяма структура, която да обяснява например граматичните правила на езика за програмиране.

Езикът за програмиране Icon е потомък на SNOBOL4.

По-късните изпълнения на езика включват: SPITBOL360 SPITBOL370 (високо настроен компилатор), Macro SPITBOL (портативно изпълнение включващо MaxSPITBOL, SPITBOL-386), (всичко е от Робърт Б. К. Деуар), SITBOL, FASBOL, ELFBOL и други.

Източник: nauka.bg