Snobol: Różnice pomiędzy wersjami
[wersja nieprzejrzana] | [wersja nieprzejrzana] |
Usunięta treść Dodana treść
m literówka |
odmiana, język |
||
Linia 1:
'''Snobol''' ('''S'''tri'''n'''g '''O'''riented Sym'''bo'''lic '''L'''anguage) to [[język programowania]] zaprojektowany specjalnie do przetwarzania napisów. Obecnie pojęcie '''Snobol''' obejmuje rodzinę języków programowania, wśród których wyróżnia się język ''Snobol4'' (number 4).
== Źródła i rozwinięcie
'''Snobol''' wywodzi się częściowo z
* COMIT-
* z idei zawartych w algorytmie Markowa.
'''Snobol''' powstał w ''Bell Telephone Laboratories'' w 1962 r.. Pierwsza jego realizacja została stworzona na maszynie IBM 7090. Około roku 1965 r. powstał ''Snobol3''. Dalsze prace nad rozwojem '''Snolol'''-u doprowadziły do powstania w 1968 r. języka ''Snobol4''.▼
▲'''Snobol''' powstał w ''Bell Telephone Laboratories'' w 1962 r
Rozwój idei zawartych w języku '''Snobol''', oraz ukierunkowanie prac na większą uniwersalność, doprowadziły do powstania nowych języków takich jak [[Icon]].▼
▲Rozwój idei zawartych w języku '''Snobol'''
== Dialekty języka Snobol ==
Język ''
* SIL (Snobol Implementation Language),
* Mainbol (Macro Implementation of Snobol),
Linia 20 ⟶ 21:
== Program w języku Snobol ==
[[Program]] w języku ''Snobol4'' składa się z ciągu [[Instrukcja (informatyka) | instrukcji]] zakończonego instrukcją '''end''', która równocześnie pełni funkcję [[etykieta (informatyka) | etykiety]] dla skoku. [[Instrukcja (informatyka) | Instrukcje]] rozdzielone są separatorem (średnik lub znak końca wiersza). Kontynuacja instrukcji w kolejnym wierszu wymaga
[[Instrukcja]] w języku ''Snobol4'' ma postać:
Linia 43 ⟶ 44:
Jej działanie polega na przeglądaniu łańcucha PRZEDMIOT w poszukiwaniu wystąpienia WZORCA i wykonaniu skoku do etykiety1, gdy WZORZEC zostanie znaleziony (instrukcja kończy się sukcesem) lub etykiety2, gdy WZORZEC nie zostanie znaleziony (uzgodnienie zawodzi).
''Instrukcja zamiany''
PRZEDMIOT WZORZEC=PODMIOT :S(etykieta1) F(etykieta2)
w której znalezienie wzorca spowoduje w łańcuchu PRZEDMIOT jego zastąpienie łańcuchem PODMIOT.
''Wyrażenie'' to dowolne poprawne w '''Snobol'''
== Typy danych ==
We wczesnych wersjach '''Snobol'''
W ''
* łańcuch (napis) : string
* liczba całkowita : integer
Linia 63 ⟶ 64:
* wyrażenie : expresion
* lista : list
Programista może wyprowadzać własne [[Typ (informatyka)
== Składnia ==
[[Składnia]] języka '''Snobol''' znacząco odbiega od składni "typowych" [[język programowania
* kontynuacja instrukcji wymaga w kolejnym wierszu umieszczenia znaku + lub .,
* zapis wyrażenia wymaga oddzielenia spacjami operatorów i argumentów, np. 'A+B' jest błędne i należy pisać 'A + B',
* instrukcja bez [[Etykieta (informatyka)
* brak struktur sterujących: [[pętla (programowanie)
* i wiele innych.
W '''Sonbol'''-u można definiować [[podprogram | podprogramy]] w postaci funkcji.▼
== Procesor Snobolu ==▼
Procesor '''Snobol'''-u to aparat uzgadniania. Aby skutecznie pisać programy w tym języku należy zrozumieć działanie aparatu przeszukiwania wzorca i sposoby jego sterowania. Aparat ten jest analogiczną procedurą do działania aparatu wnioskowania w języku [[Prolog]].▼
▲Procesor '''Snobol'''
Tak więc podobnie jak w [[Prolog | Prologu]] program jest tłumaczony na kod wewnętrzny ''procesora Snobol-u'', a nie na kod wewnętrzny maszyny. W implementacjach kompilatorów, procesor jest włączany do kodu wynikowego i interpretuje swój język wewnętrzny będący wynikiem translacji ''kodu źródłowego w '''Snobol'''-u'' na ''kod wewnętrzny procesora '''Snobol'''-u''. Działanie procesora '''Snobol'''-u opiera się o predykaty, tzn. funkcje które mogą bądź generować sukces (powodzenie), bądź mogą zawodzić. Dostępne są również predykaty standardowe, którymi można wpływać na przebieg procesu uzgadniania. Istnieje tu więc pewna analogia do aparatu wnioskowania [[Prolog | Prologu]].▼
▲Tak więc podobnie jak w [[Prolog
'''Snobol''' zawiera mechanizm automatycznej regeneracji pamięci dynamicznej.
Linia 85 ⟶ 87:
== Słowa kluczowe ==
W '''Snobol'''
== Implementacja dla komputera Odra 1305 ==
W Polsce zrealizowano dystrybucję ''Spitbol''
== Przykład ==
Linia 101 ⟶ 103:
== Zobacz też ==
▲* [[Podprogram | Podprogram w Snobol-u]]
* [[Icon]]
|