ABC (język programowania) - ABC (programming language)
Paradygmaty | wieloparadygmat : imperatyw , proceduralny , ustrukturyzowany |
---|---|
Zaprojektowany przez | Leo Geurts, Lambert Meertens , Steven Pemberton |
Deweloper | Centrum Wiskunde & Informatica (CWI) |
Po raz pierwszy pojawiły się | styczeń 1987 |
Wersja stabilna | 1.05.02/1990
|
Dyscyplina pisania | silny , polimorficzny |
OS | Uniksowe , Windows , MacOS i Atari TOS |
Strona internetowa | strony |
Wpływem | |
SETL , ALGOL 68 | |
Pod wpływem | |
Pyton |
ABC jest imperatywnym językiem programowania ogólnego przeznaczenia i zintegrowanym środowiskiem programistycznym (IDE) opracowanym w Centrum Wiskunde & Informatica (CWI) w Holandii przez Leo Geurtsa, Lamberta Meertensa i Stevena Pembertona . Jest interaktywny, ustrukturyzowany, wysokopoziomowy i przeznaczony do użycia zamiast BASIC , Pascal lub AWK . Jest przeznaczony do nauczania lub tworzenia prototypów, ale nie jako język programowania systemowego.
ABC miało duży wpływ na projekt języka Python , opracowanego przez Guido van Rossuma , który wcześniej pracował przez kilka lat nad systemem ABC w połowie lat 80-tych.
Cechy
Jego projektanci twierdzą, że programy ABC są zazwyczaj o około jedną czwartą wielkości ich odpowiedników w Pascalu lub C i są bardziej czytelne. Najważniejsze cechy to:
- Tylko pięć podstawowych typów danych
- Brak wymaganych deklaracji zmiennych
- Wyraźne wsparcie dla programowania odgórnego
- Zagnieżdżanie instrukcji jest wskazywane przez wcięcie , poprzez regułę off-side
- Arytmetyka o nieskończonej precyzji , listy i ciągi znaków o nieograniczonej wielkości oraz inne funkcje wspierające ortogonalność i łatwość użycia przez nowicjuszy
ABC było pierwotnie implementacją monolityczną , co prowadziło do niemożności dostosowania się do nowych wymagań, takich jak tworzenie graficznego interfejsu użytkownika (GUI). ABC nie mogło uzyskać bezpośredniego dostępu do podstawowego systemu plików i systemu operacyjnego .
Pełny system ABC zawiera środowisko programistyczne z edytorem struktur ( edytor ukierunkowany na składnię), sugestiami, zmiennymi statycznymi (trwałe) oraz wieloma obszarami roboczymi i jest dostępny jako interpreter – kompilator . Od 2020 roku najnowsza wersja to 1.05.02 i jest przeniesiona na Unix , DOS , Atari , i Apple MacOS .
Przykład
Przykładowa funkcja do zebrania zbioru all words
w dokumencie:
HOW TO RETURN words document: PUT {} IN collection FOR line IN document: FOR word IN split line: IF word not.in collection: INSERT word IN collection RETURN collection