v Fascynujący świat programów komputerowych, 4. Języki programowania Włodzisław Duch, Fascynujący świat programów komputerowych,  Wydawnictwo Nakom, Poznań, grudzień 1997. Informacje o nieaktualnych dowiązaniach proszę przesyłać na adress id: wduch, na serwerze is.umk.pl.

Tu są głównie linki, notatki do wykładów są tutaj.


4.2 Asembler | 4.3 Basic | 4.4 Fortran | 4.5 APL | 4.6 Pascal | 4.7 Modula i Oberon | 4.8 C | 4.9 Ada | 4.10 Forth | 4.11 Logo | 4.12 Cobol i PL/I | 4.13 Lisp, Prolog | 4.14 Języki obiektowe | 4.15 DBMS | 4.16 4 GL | 4.17 Programowanie wizualne | 4.18 Języki symulacyjne | 4.19 Języki funkcyjne | 4.20 Programowanie współbieżne | 4.21 Modelowanie matematyczne | 4.22 Języki opisu stron | 4.23 Java | 4.24 Programowanie systemów operacyjnych | 4.25 CASE | 4.26 Przysłowia programisty | 4.27 Co można zaprogramować | 4.28 Krótka historia języków |


4. Języki programowania.

Bardzo wiele informacji na temat języków programowania można znaleźć pod adresami:

Virtual Library: Computing Languages
Yahoo - języki programowania
Lista języków komputerowych NCSA
Lista wszystkich opublikowanych języków komputerowych i kompilatorów

Ambitne zadanie dokonania przeglądu języków programowania
SourceForge, źródła tysięcy projektów Open Source
Programmers heaven, niebo programisty

4.1 Na czym polega programowanie?

Język maszynowy i symboliczne języki programowania; Implementacja, program; Translator, interpreter, kompilator; Konsolidacja, linkowanie ( link); Kompilacja przyrostowa; debuger

Programowanie liniowe, programowanie strukturalne, programowanie zorientowane obiektowo, programowanie funkcyjne.

Style programowania, cykl życia (life cycle). pielęgnacja

Klasyfikacja języków:

Języki bliskie kodu maszynowego; Języki imperatywne; Języki deklaratywne; Języki proceduralne; Języki funkcyjne; Języki definicyjne; Języki logiczne; Języki ograniczeń (constraint); Języki obiektowo zorientowane; Języki programowania współbieżnego; Języki „przepływu danych" (dataflow); Języki czwartej generacji (4GL); Języki zapytań baz danych; Metajęzyki

4.2 Asembler

Szczegółowe informacje o asemblerach

SGA, Superowa Grupa Asmowa, czyli klub asemblerowców.

Disasembler
Języki wyższego rzędu

4.3 Basic

BASIC = Begginers All-purpose Symbolic Instruction Code

Archiwum informacji o Basicu
Dyskusje w grupie alt.lang.basic Usenetu;

4.4 Fortran

FORmula TRANslation, czyli „tłumacz formuł".
Fortran II, Fortran IV, G, H, 77, 90; Standard ANSI (American National Standards Institute)
Nadal się rozwija, Fortran 90 - najlepszy język do zastosowań numerycznych?

HPC, High Performance Fortran, Fortran 90, Fortran M

Język F
Fortran Market - narzędzia dla zwolenników Fortranu

Digital Visual Fortran - doskonałe środowisko do programowania w Fortranie 90, używa środowiska Microsoft Developer Studio, zintegrowany z Microsoft Visual C++ 5.0 i Visual Studio '97, biblioteki graficzne i numeryczne, etc.
W Polsce DVF sprzedawany jest przez MakoLab

Numerical Recipies, czyli programy do rozwiązywania problemów numerycznych w Fortranie, C i Paskalu.

4.5

APL

APL, czyli A Programming Language; APL i język J
Witryna APL

4.6 Pascal

Zaprojektował go w 1971 roku N. Wirth z Politechniki w Zurychu.

Bardzo długa lista producentów kompilatorów i narzędzi do programowania w Pascalu
Świetnie zorganizowana strona zawiera informacje dla programistów.
Binboy, strona o TurboPascalu i Asemblerze.

4.7 Modula i Oberon

Modula-Prolog, Modula/R, Modula-2,  Modula-3

Oberon, Oberon-2
Dokładniejsze informacje na temat tych języków
Archiwum FTP w Szwajcarii

4.8 C

Najbardziej pokrętne użycie języka C
Informacje na temat C | informacje z Yahoo
Narzędzia djgpp do C i C++, zawiera kompilator GCC - wszystko za darmo!
R++, czyli rozszerzenie C++ w stronę logicznych reguł

4.9 Ada

Ada Lovelace (1811-1852), przyjaciółka Babbage'a, uznawana za pierwszą programistkę na świecie; język powstał na zlecenie Departamentu Obrony (DoD) USA; Ada 95 - zorientowana obiektowo, nowy standard

GNAT, darmowy kompilator Ady 95, adres FTP

FAQ na temat Ady
Ada Home Page
Wiele informacji o języku Ada

4.10 Forth

Forth Interest Group
Informacje z PC-AI

4.11 Logo

Logo stworzone zostało w latach 60-tych przez Daniela Bobrowa i Wallace'a Feurzeiga z firmy Bolt, Beranek and Newman, Inc.oraz Seymura Paperta, profesora informatyki z MIT.

Informacje o Logo z PC-AI
Object Logo (Paradigm Software) na komputery Macintosh

4.12 Cobol i PL/I

COBOL jest akronimem od Common Business Oriented Language; ostatni standard ISO/ANSI wprowadzony w 1985 roku;
Micro Focus oferuje kompilator OO COBOL

Darmowy kompilator pod adresem www.flexus.com
Łatwe budowanie graficznego interfejsu użytkownika: VanGui dla RM/COBOL

Informacje na temat Cobolu | COBOL FAQ | COBOL GoldMine | All Things COBOL webring |

Opracowany w 1964 roku PL/I był połączeniem Fortranu i Algolu z COBOLem.
Informacje o PL/I

4.13 LISP, Prolog i języki sztucznej inteligencji

Języki sztucznej inteligencji w PC-AI
LISt Processing, oparty na matematycznym formalizmie zwanym ,,lambda-rachunkiem"; język aplikatywny

Common LISP (1984), rozszerzenia, np. CLOS, CLIM, Iterate i Screamer.

Dużo informacji na temat Lispu
Lisp z PC-AI

Snobol ( String Oriented Symbolic Language)

PROgramming in LOGic czyli ProLog | Prolog FAQ

Dokładniejsze informacje o Prologu i innych językach programowania logicznego

Expert system shells:

CLIPS ( C Language Integrated Production System) i wersja współbieżna PCLIPS 
OPS5 - On-line Process Synthesizer, czyli interakcyjny syntezer procesów
KEE - Knowledge Engineering Environment, czyli Środowisko Inżynierii Wiedzy;
LOOKS - system reprezentacji wiedzy do projektowania systemów doradczych korzystających z programowania logicznego;
POP (Package for On-Line Programming, czyli pakiet programowania interakcyjnego)

Nowsze wersje: POP-11, POP++, POPLER, POPLOG (środowisko), PopTalk do programowania systemów doradczych.

Inne języki sztucznej inteligencji: lista PC-AI.

4.14 Języki zorientowane obiektowo

OOP (Object-Oriented Programming); klasy, metody, obiekty, dziedziczenie, hermetyzacja, polimorfizm

Smalltalk
Darmowy kompilator GNU Smalltalk, kompilator Little Smalltalk.

Smalltalk dla potrzeb muzyki, e-mail smallmusic@xcf.berkeley.edu

Eiffel | archiwum FTP Eiffel | Eiffel from PC-AI |
Sather
Dylan
C++, Visual C++; Borland C++ Builder, środowisko 4GL dla C++
Informacje na temat C++ z PC-AI

4.15 DBMS - języki do zarządzania bazami danych

SQL, Paradox, dBase, Clipper (Computer Associates International ), FoxPro, Oracle, Ingres, Informix Software Polska, Siemens Nixdorf Polska

Obliczenia w biznesie - np. język ABAP.
Ostatnia wersja ABAP/4 to język czwartej generacji. Jest połączeniem SQL'a i języka wysokiego poziomu. Używana w systemach SAP R/3.

4.16 Języki czwartej generacji, 4GL

CA-Visual Objects, Clarion, Delphi, Magic, Matrix Layout, Plastic Software, Team Enterprise, Vermont Views, 4th Dimension 

Delphi: strona WWW firmy Borland  oraz Polski serwer Sunsite DelphiSuper Page

PowerBuilder Enterprise firmy Powersoft Corporation

Team Enterprise (Symantec Corp), oraz późniejsza wersja, Enterprise Developer

Oracle Power Objects

Plastic Software

4.17 Programowanie wizualne

Visual Programming Languages, VPL

Informacje ogólne: serwer Sussex (UK), Yale (USA), Szwajcaria

Journal of Visual Languages and Computing (Academic Press)

AppWare, firmy MicroBrew
AppWare Developers Association

Prograph (Pictorius Incorporated), Iconicode (Meta Software), Layout (Objects Inc), VPLus (SimPhonics, Inc), N!Power (Signal Technology), SynchroWorks (Oberon Software, Inc), Synergy (Prodea Software Corp), VisualAge (IBM).

Do zastosowań multimedialnych służą: Authorware (Macromedia, Inc), IconAuthor (AimTech Corp), ForShow (Bourbaki, Inc), HSC InterActive (HSC Software).

Do zbierania i przetwarzania danych z eksperymentów: LabVIEW (National Instruments) oraz Khoros (Khoral Research).

Do projektowania i testowania systemów komputerowych: Dataflow MP (Dynetics, Inc.), Design/CPN (Meta Software).

ARK (The Alternate Reality Kit); VIPR, Self (Sun Labs), Agentsheets, Starlogo
 

4.18 Języki symulacyjne

Informacje o językach dla potrzeb symulacji

Polskie Towarzystwo Symulacji Komputerowych

Matrix_x (Integrated Systems Inc), symulacje i język wizualny dla Windows 95/NT i Unixa

Simula, Simulink (Matlab)

Dla systemów dyskretnych np. GPSS, MILITRAN, MODSIM II, SIL, SIMSCRIPT
Dla systemów ciągłych np. DYNAMO, ECSSL, MOBSSL, SALEM, SLANG
Symulacja działania obwodów scalonych: DACAPO, esim
Systemów komputerowych: ASPOL, ECSS II, OSSL do symulacji działania systemów operacyjnych, PSML do symulacji działania procesorów), komputerów analogowych (DYSAC),
Systemów mechanicznych (DYANA, MARSYAS dla aerodynamiki)
Systemów elektronicznych (Gabriel, GOSPL do symulacji przetwarzania sygnałów), EDA, Electronics Workbench (Interactive Image Technologies)
Ekonometria - TROLL
Systemów telekomunikacji (COMSL)
Transportu (TRANS)
Sztucznej inteligencji (GRAPPLE do symulacji punktów widzenia).

VRML (Virtual Reality Modeling Language), więcej informacji, VRML w Yahooksiążki o VRML
VRBL, (Virtual Reality Behavior Language

4.19 Języki funkcyjne

The Journal of Functional Programming

Przykłady: ML (Meta-Language, czyli meta-język, obejmujący różne wersje, takie jak SML, Lazy ML, CAML), ASpecT, Concurrent Clean, FP, Gofer, Hugs, Hope, IFP, Miranda, NESL, OPAL, Oz, Sisal

Haskell, archiwum FTP w Szwecji i w Szkocji

Informacje ogólne: z serwerów w W. Brytanii, Yale (USA), Nottingham (UK), CMU (USA)

Grupa dyskusyjna Usenetu comp.lang.functional, ich FAQ

4.20 Programowanie współbieżne

OCCAM, Transputery

Model Linda

Fortran. FM (Fortran M Programming Language).

Współbieżne wersje C++, np. CC++ lub pC++/Sage++

GLU Parallel Programming System

CODE - wizualny system programowania współbieżnego.

Erlang - język programowania współbieżnego stosowany w systemach czasu rzeczywistego.

NESL (A Nested Data-Parallel Language) - a funkcyjny język programowania współbieżnego.

4.21 Modelowanie matematyczne

Języki operujące matematycznymi symbolami
Obliczenia symboliczne: informacje ogólne
Derive (Soft Warehouse)
Macsyma Inc
Maple (Waterloo Maple Inc)
Matlab firmy MathWorks , translator mcc, czyli z MATLABA do C
Mathcad firmy Mathsoft
Mathematica, Wolfram Research
TKSolver firmy Universal Technical Systems, Inc. (UTS)
Eureka, Mercury
Musimp; Reduce (jeden z najstarszych języków do obliczeń symbolicznych); Theorist
S, język dla celów statystycznych.

Dystrybucja w Polsce: firma Gambit

4.22 Języki opisu stron

Postscript firmy Adobe, www.adobe.com;
informacje ogólne
informacje z Yahoo


Oglądanie postscriptu i drukowanie na dowolnej drukarce umożliwiają darmowe programy Ghostscript i GSview.

HPGL i PCL 5 firmy Hewlett-Packard

Script/X Apple, Borland, Lotus, WordPerfect i Kaleida Labs, język środowiska multimedialnego.

4.23 Java i programowanie stron WWW

Java i Java Script.

Polska Grupa Java | JavaSoft | JavaScript.com | Java Numerics |
gcj - darmowy kompilator Java |

Foto-iluzje, interesująca strona z appletami
Anfy-team, gotowe applety

Przykłady appletów:
Applet Movements
Anfy Java, wiele interesujących appletów
Java Applets on Chaos
Java demos, TSP
Java Gamelan Demos
Top5% WebApplets Rated by JARS
Java World, miesięcznik elektroniczny
Java cybertoys
Java, JavaScript, CGI, Perl, DHTML, ActiveX - tysiące programów w Javie itp.

SunLabs stworzył bardzo popularny język Tcl/Tk (Tool Command Language/Tool Kit) | kurs języków TCl/Tk | comp.lang.tcl FAQ

Języki skryptowe - JavaScript, CGI, PHP, Perl, DHTML, ActiveX, do programowania stron WWW
Strona o PHP

4.24 Programowanie systemów operacyjnych

JCL (Job Control Language); REXX
Języki skryptowe: Perl CPAN

4.25 CASE

CASE, czyli Computer Aided Software Engineering, to Komputerowo Wspomagana Inżynieria Oprogramowania.

Software Engineering, strona P. Cichosza

lower CASE, upper CASE; notacja Gane & Sarson, Bachman, Chen

S-Designor (Powersoft) | Excelerator II (Intersolv) | CASE*Designer (Oracle Systems)

MacDonnel Douglas pakiet Prokit Workbench; SilverRun (Computer Systems Advisers), ERwin (Logic Works); Application Development Workbench (KnowledgeWare), Systems Architect (Popkin Software & Systems)

4.26 Przysłowia programisty i ranking języków

Zapotrzebowanie na ekspertów od różnych języków programowania: ankieta Computerworld USA
Metodologia programowania; notacja węgierska

4.27 Co można zaprogramować?

Zagadnienia NP-trudne, perypetuum mobile informatyki
Strona Donalda Knutha
Zbiór algorytmów (z ftp.cdrom.com/pub/algorithms)

4.28 Krótka historia języków programowania

Spis ponad 2000 oficjalnie opublikowanych języków komputerowych.

Rok Język  Twórca, wersje, dialekty, uwagi
1945 Plankalkül Pierwszy język programowania przedstawiony przez Konrada Zuse
1952 asemblery Do 1959 roku ok. 200 języków programowania!
1957 Fortran John Backus, IBM, Fortran II, Fortran IV (1966), Fortran 77 (1977), Fortran 90 (1991)
1960 LISP  J. McCarthy, MIT, InterLisp, MacLisp, PSL, Common LISP (1984), Scheme (dialekt LISPu)
1960 Algol Algol 60, Algol 68
1960 COBOL główne zmiany 1968 i 1974, ostatnia COBOL 85
1962 APL Ken Iverson (Harvard) APL/PC, APL*PLUS
1962 SIMULA Kristen Nygaard & Ole-Johan Dahl, pierwsza implementacja 1964, SIMULA 67
1964 BASIC John G. Kemeny & Thomas E. Kurtz, Dartmouth College, wiele dialektów 
1964 PL/I George Radin, dialekty: EPL, PL/S, XPL etc
1971 Prolog Alain Colmerauer and Phillipe Roussel, Univ. Aix-Marseille, Prolog-2, Prolog++, Prolog-D-Linda
1972 C Dennis Ritchie, Bell Labs, C* do programów współbieżnych, dialekty: Visual C
1975 Pascal N. Wirth, ETH, dialekty: Pascal Plus, TurboPascal, Pascal/R, wiele innych
1979 Modula-2 N. Wirth, ETH, wersja I z 1977 roku, dialekty: Modula-2+, Modula-3, Modula-P, Modula/R 
1980 dBASE II wersje późniejsze: dBASE III, III+, IV, V
1983 Smalltalk-80 Xerox PARC, pod kierownictwem Alana Kay'a, rozwój od 1970 roku, Smalltalk/V na PC. 
1983 Ada Jean Ichbiah, CII Honeywell, standard Ada 83, rozszerzenia Ada++, Ada 9X nowy standard
1986 C++ Bjarne Stroustrup, AT&T, liczne implementacje
1988 Mathematica Steven Wolfram, oparta na języku SMP, ver. 2

1995

Java

SunSoft

Włodzisław Duch, Fascynujący świat programów komputerowych,  Wydawnictwo Nakom, Poznań, grudzień 1997. Informacje o nieaktualnych dowiązaniach proszę przesyłać na adress id: wduch, na serwerze is.umk.pl.

Tu są głównie linki, notatki do wykładów są tutaj.