Snobol: Różnice pomiędzy wersjami
[wersja nieprzejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
m robot poprawia: fr:String Oriented Symbolic Language |
WP:SK, drobne techniczne |
||
Linia 2:
== Źródła i rozwinięcie Snobola ==
'''Snobol''' wywodzi się częściowo z
* COMIT-a, a częsciowo
* z idei zawartych w algorytmie Markowa.
Linia 11:
== Dialekty języka Snobol ==
Język ''Snobol4'' doczekał się kilku [[implementacja
▲Język ''Snobol4'' doczekał się kilku [[implementacja | implementacji]] różniących się między sobą w szczegółach realizacji. Warto tu wymienić następujące wersje:
* SIL (Snobol Implementation Language),
* Mainbol (Macro Implementation of Snobol),
Linia 20 ⟶ 19:
== Program w języku Snobol ==
[[Program komputerowy]] w języku ''Snobol4'' składa się z ciągu [[Instrukcja (informatyka)
▲[[Program komputerowy]] 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 aby pierwszy znak linii kontynuacyjnej był znakiem "+" lub ".". [[Komentarz (informatyka) | Komentarzem]] jest linia rozpoczynająca się od znaku "*".
[[Instrukcja]] w języku ''Snobol4'' ma postać:
etykieta reguła skok
* '' [[Etykieta (informatyka)
* ''Reguła'' określa konkretną akcję do wykonania przez '''Snobol'''
** przypisanie
Linia 33 ⟶ 31:
* ''Skok'' może być
** bezwzględny – :(etykieta)
** skok w przypadku sukcesu
** skok w przypadku niepowodzenia
** skoki warunkowe (kolejność S i F dowolna)
''Instrukcja przypisania'' ma postać znaną z ogólnych języków programowania:
Linia 51 ⟶ 49:
== Typy danych ==
We wczesnych wersjach '''Snobol'''a jedynym typem danych był napis (łańcuch) i nawet operacje arytmetyczne były wykonywane na liczbach pamiętanych w postaci napisów.
Linia 67 ⟶ 64:
== Składnia ==
[[Składnia]] języka '''Snobol''' znacząco odbiega od składni "typowych" [[język programowania|języków programowania]] wysokiego poziomu i ma wiele "udziwnień" powodujących często błędy wśród programistów przyzwyczajonych do tradycyjnego zapisu programu, np.
* 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 (informatyka)
* brak struktur sterujących: [[pętla (programowanie)|pętle]] realizuje się za pomocą skoków do [[Etykieta (informatyka)
* i wiele innych.
W '''Snobol'''u można definiować [[podprogram
== Procesor Snobola ==
Procesor '''Snobol'''a 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]].
Tak więc podobnie jak w [[Prolog
'''Snobol''' zawiera mechanizm automatycznej regeneracji pamięci dynamicznej.
== Słowa kluczowe ==
W '''Snobol'''u ''słowa kluczowe'' zapewniają dostęp do informacji ''procesora '''Snobol'''a'', przy czym program może je jedynie odczytywać, nie można przypisywać im nowych wartości z wyjątkiem kilku zmiennych systemowych.
== Implementacja dla komputera Odra 1305 ==
W [[Polska
▲W [[Polska | Polsce]] zrealizowano dystrybucję ''Spitbol''a dla komputerów [[Odra 1305]] w ''Instytucie Fizyki [[Uniwersytet Jagielloński | Uniwersytetu Jagiellońskiego]]'' pracującą pod systemem [[GEORGE 3]] w oparciu o pierwszą, autorską wersję Macro-Spitbol dla maszyn serii [[ICL]] 1900. Wersja 4.1 uruchomiona została 1983 r.
== Przykład ==
* Przykład
DEFINE('COPYL(L)X,Y')
Linia 103 ⟶ 95:
== Bibliografia ==
{{Bibliografia start}}
# Paweł Gizbert-Studnicki, Jerzy Kaczmarczuk, '''''Snobol4''''', [[Wydawnictwa Naukowo-Techniczne]], [[Warszawa]] [[1984]], Seria: [[Biblioteka Inżynierii Oprogramowania]], ISBN 83-204-0546-7
{{Bibliografia stop}}
== Zobacz też ==
* [[Podprogram#Podprogram w języku Snobol
* [[Icon]]
[[Kategoria:Języki programowania]]▼
{{Języki programowania}}
▲[[Kategoria:Języki programowania]]
[[bg:SNOBOL]]
|