Języki programowania Bardzo krótka historia Przykłady



Podobne dokumenty
Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Paradygmaty programowania

Podstawy programowania wykład

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Podstawy programowania. Wprowadzenie

Język programowania PASCAL

KARTA KURSU. Wstęp do programowania

Wstęp do programowania

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie.

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Informatyka II stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Informatyczna Wieża Babel, czyli o różnych językach programowania. Informatyczna Wieża Babel, czyli o różnych językach programowania

Podstawy Informatyki Języki programowania

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania

Architektura komputerów

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Języki i paradygmaty programowania. I. Wprowadzenie


Języki i metodyka programowania

Programowanie I. Wprowadzenie. Proces programowania

wstęp (podstawowe pojęcia związane z programowaniem, przegląd języków programowania, sieci działań, ogólne zasady programowania zorientowanego

Wprowadzenie do programowania

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA ALGORYTM. Język programowania PROGRAM. instrukcja-dla. instrukcja-przypisania.

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma studiów: Stacjonarne. audytoryjne. Wykład Ćwiczenia

Technologie informacyjne - wykład 12 -

Kierunek Informatyka stosowana Studia stacjonarne Studia pierwszego stopnia

Zapisywanie algorytmów w języku programowania

O (o)programowaniu. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Programowanie komputerów

PRZEWODNIK PO PRZEDMIOCIE

Wstęp do Informatyki dla bioinformatyków

Wstęp do Programowania Obiektowego. Wykład 13 Paradygmaty. Składnia i semantyka.

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Java EE produkcja oprogramowania

Języki programowania deklaratywnego

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Algorytmy od problemu do wyniku

Programowanie obiektowe. Wprowadzenie

Informatyka. Prowadzący: Dr inż. Sławomir Samolej D102 C, tel: , WWW: ssamolej.prz-rzeszow.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Modelowanie i Programowanie Obiektowe

PRZEWODNIK PO PRZEDMIOCIE

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

Środowiska i platformy programistyczne

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

PRZEWODNIK PO PRZEDMIOCIE

Wstęp do Informatyki i Programowania

Programowanie w języku C++ Grażyna Koba

Języki programowania zasady ich tworzenia

Algorytmika i pseudoprogramowanie

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW

PRZEWODNIK PO PRZEDMIOCIE

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa i multimedia

Geneza powstania języka C++

OPIS ZAKŁADANYCH EFEKTÓW KSZTAŁCENIA DLA KIERUNKU STUDIÓW: TECHNOLOGIE INFORMATYCZNE

Podstawy programowania

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie I C15

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 2

Podstawy programowania.

PRZEWODNIK PO PRZEDMIOCIE

ECDL Podstawy programowania Sylabus - wersja 1.0

PODSTAWY ALGORYTMIKI

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

PRZEWODNIK PO PRZEDMIOCIE

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

Programowanie w C. dr inż. Stanisław Wszelak

PRZEWODNIK PO PRZEDMIOCIE

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Wykład 0 Informacje Podstawowe

Historia modeli programowania

I rok. semestr 1 semestr 2 15 tyg. 15 tyg. Razem ECTS. laborat. semin. ECTS. konwer. wykł. I rok. w tym. Razem ECTS. laborat. semin. ECTS. konwer.

Paradygmaty programowania

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

INFORMATYKA Informatics. forma studiów: studia stacjonarne. Liczba godzin/tydzień: 2W, 2L PRZEWODNIK PO PRZEDMIOCIE

Podstawy Programowania. Języki programowania

Wykład 1 Informacje Podstawowe

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Podstawy programowania w języku C

Repetytorium z matematyki 3,0 1,0 3,0 3,0. Analiza matematyczna 1 4,0 2,0 4,0 2,0. Analiza matematyczna 2 6,0 2,0 6,0 2,0

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

TOK STUDIÓW Kierunek: informatyka rok studiów: I studia stacjonarne pierwszego stopnia, rok akademicki 2014/2015. Forma zaliczen ia. egz. lab.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Liczba godzin. N (nauczyciel) studia niestacjonarne

Informatyka Informatics

Załącznik B.2 Matryca efektów kształcenia

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Transkrypt:

Języki programowania Bardzo krótka historia Przykłady Wojciech Myszka, Jakub Słowiński 3 grudnia 2014

Krótkie podsumowanie Co wiemy dotychczas: 1. 2. 3. 4. Trochę z historii komputerów Co to jest komputer. Co to jest automat. Co to jest algorytm.

Jak działa komputer 1. Model von Neumanna. 2. Procesor. 3. Arytmetyka, błędy, Odwrotna Notacja Polska.

Szukamy 1. Modelu (teoretycznego) obliczeń prowadzonych na komputerze. 2. Sposobu organizowania algorytmów. 3. Metody badania ich efektywności. 4. Metody badania ich poprawności.

Języki świata

Języki świata

Postawiony cel 1. Efektywne tworzenie algorytmów. 2. Umiejętność programowania algorytmów (zapisywania w języku zrozumiałym dla komputerów).

Język programowania język programowania semantyka syntaktyka znaczenie wyrażeń relacje między wyrażeniami

Język programowania Studentki zrobiły notatki, po czym niektóre z nich poszły do domu. Studentki zrobiły notatki, po czym niektóre z nich zabrali studenci. Studentki zrobiły notatki, po czym niektóre z nich zgubiono. Języki wymagają precyzyjnej syntaktyki. Języki wymagają precyzyjnej semantyki.

Języki programowania 1. 2. 3. 4. Analytical Engine Plankalkul Konrad Zuse Kable, lampy, przełączniki Język wewnętrzny komputera 5. Assembler symboliczne nazwy operacji oraz symboliczne nazwy zmiennych Języki wysokiego poziomu jest ich ponad 2500 http:// people.ku.edu/~nkinners/langlist/ Extras/dialects.htm

Języki programowania język programowania kompilacja interpretacja proste instrukcje sterujące (skok, warunek); operacja bitowe, ale także na liczbach i symbolach; bezpośrednie odwołanie do pamięci natychmiastowe tłumaczenie na język maszynowy; łatwiej napisać jakikolwiek interpretator niż sensowny kompilator

Interpretacja vs. kompilacja Interpreter jest to program, który czyta kod programu, a następnie realizuje go. Kompilator (translator) jest to program, który czyta kod programu, a następnie w kilkuetapowym procesie przetwarza go na kod maszynowy. Nie ma nic takiego jak języki kompilowania czy języki interpretowane; niemal każdy język może być zrealizowany w jednej lub drugiej postaci (nadaje się do tego bardziej albo mniej). Niektóre współczesne interpretery zawierają w sobie fragment kompilatora: we wstępnym etapie przetwarzania program źródłowy konwertowany jest do kodu bajtowego (bytecode) i dopiero interpretowany. Interpretacja kosztuje sporo czasu

Główne języki - historia 1957 FORTRAN John Warner Backus FORmula TRANslator stosowany głównie w obliczeniach numerycznych (APDL w Ansysie jako pochodna Fortrana) Standaryzowany Fortran Fortran Fortran Fortran Fortran Fortran IV 66 77 90 95 2003 STALE W UŻYCIU

Główne języki - historia 1958 ALGOL 1960 LISP ALGOrithmic Language standard opisu algorytmów w publikacjach naukowych i podręcznikach jeden z najstarszych języków programowania chętnie stosowany w badaniach i rozwoju sztucznej inteligencji wywodzi się z niego wiele technik programistycznych instrukcje blokowe, przekazywanie parametrów do procedur przez wartość i nazwę, rekurencja, tablice dynamiczne, słowa kluczowe, typy danych użytkownika, brak instrukcji I/O struktury drzewiaste odśmiecanie pamięci dynamiczne typowanie STALE W UŻYCIU

Główne języki - historia 1960 COBOL COmmon Business Oriented Language 90% operacji finansowych jest obsługiwanych przez programy napisane w COBOL-u doskonała dokumentacja liczne wady nadmiernie rozbudowana składnia brak zmiennych lokalnych brak rekurencji brak dynamicznej alokacji pamięci brak programowania strukturalnego brak programowania obiektowego COBOL jest synonimem zła. STALE W UŻYCIU IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. PARA-1. DISPLAY "Hello world!". EXIT PROGRAM. END PROGRAM HELLO-WORLD.

Główne języki - historia 1962 APL 1962 SIMULA powstały dwie odmiany tego języka w Norweskim Ośrodku Obliczeniowym w Oslo: Simula I i Simula 67 pierwszy język obiektowy Simula jest rozszerzeniem języka Algol 60 pomyślana jako uniwersalny język symulacji wprowadził pojęcia klas, obiektów, podklas A Programming Language język matematyczny tworzenie macierzy bardzo bogaty zestaw operatorów APL posługuje się znakowymi symbolami

Główne języki - historia 1964 BASIC Beginner s All-purpose Symbolic Instruction Code powstał w oparciu o Fortran i ALGOL język łatwy, wszechstronny, dobra komunikacja z użytkownikiem niezmiernie popularny istnieje około 200 dialektów w Polsce popularny ze względu na dostępność na mikrokomputery C-64, Amstrad PC, ATARI i ZX Spectrum

Główne języki - historia 1964 PL/I Programming Language One powstał dla celów naukowych, inżynieryjnych i biznesowych skupionych wokół firmy IBM bardzo bogaty zbiór funkcji wbudowanych nie istnieje kompilator uwzględniający wszystkie z nich służy do przetwarzania informacji, rozwiązywania problemów (nie)numerycznych łatwość przedstawiania algorytmów jest predystynowany do rozwiązywania skomplikowanych i uniwersalnych zadań, np. zintegrowanych systemów przetwarzania danych 1966 ISWIM If you See What I Mean język imperatywny (programy imperatywne składają się z ciągu komend do wykonania przez komputer) wykorzystuje rachunek lambda (system formalny używany do badania zagadnień związanych z podstawami matematyki jak rekurencja, definiowalność funkcji, obliczalność, podstawy matematyki, jest przydatny do badania algorytmów.

Główne języki - historia 1970 PROLOG Programming in Logic język deklaratywny język programowania logicznego opiera się na klauzulach stwierdzających, że pewne fakty wynikają ze zbioru innych faktów automatyczna analiza języków naturalnych dobrze sprawdza się w programach związanych z AI, do tworzenia systemów ekspertowych na wejściu tworzy się bazę faktów i reguł a następnie tworzy się zapytania http://www.im.pwr.wroc.pl/~przemko/prolog/

Główne języki - historia 1972 C Dennis Ritchie imperatywny i strukturalny do programowania systemów operacyjnych (1973 - Unix) tworzony jako prosty i mały język, działa nawet na systemach wbudowanych komentarze, komentarze blokowe pętle while, do while, for pozwala na wykonywanie niskopoziomowych operacji daje kontrolę nad działaniem komputera, ale wymaga tej wiedzy od programisty brak odśmiecania pamięci garbage collection brak operacji na tablicach brak standardowych bibliotek graficznych (niestandardowe: SDL, Freeglut, Cairo)

Główne języki - historia 1972 PASCAL Niklaus Wirth bardzo popularny w latach 80. i 90. Turbo Pascal zaprojektowany jako język do nauki programowania strukturalnego 1995 Delphi (Object Pascal)

Główne języki - historia 1975 Scheme język głównie funkcyjny, pochodna języka Lisp minimalizm stosuje notację Łukasiewicza bazuje na rachunku lambda stale rozwijany ostatni standard ogłoszono 28.08.2007 1977 OPS5 Official Production System język programowania reguł produkcyjnych do tworzenia systemów ekspertowych język wnioskujący w przód Wnioskowanie w przód (Modus Ponendo Ponens) to progresywny algorytm sztucznej inteligencji służący do tworzenia nowych zdań logicznych na podstawie istniejącej bazy faktów /Wikipedia/

Główne języki - historia 1978 CSP Communicating Sequential Processes formalizm do zapisu procesów współbieżnych brak kompilatora i środowiska do uruchamiania nadaje się do opisu komunikacji w systemach rozproszonych 1983 occam język programowania współbieżnego 1980 dbase pierwszy powszechnie stosowany system baz danych obsługa pętli DO WHILE/ENDDO i warunków logicznych IF/ENDIF obsługa rekordów USE, SKIP, GO TOP, GO BOTTOM manipulacja rekordami (REPLACE, STORE), łańcuchami tekstowymi, liczbami, datami, manipulacja wieloma rekordami/plikami jednocześnie

Główne języki - historia 1983 Smalltalk-80 opracowany w Xerox Palo Alto Research Center wprowadził graficzny interfejs użytkownika język w pełni obiektowy (po Simuli) i reflektywny refleksja pozwala zarządzać kodem tak jakby był on danymi wykorzystywany głównie do celów dydaktycznych 1983 Ada strukturalny, kompilowany, imperatywny, obiektowy stworzony na zamówienie Departamentu Obrony USA język programowania głównie systemów czasu rzeczywistego (przeważnie współbieżnych) bardzo rozbudowany, złożona składnia brak pełnego kompilatora dla PC (kłopotliwa realizacja współbieżności) standard zapisu programów współbieżnych w publikacjach naukowych

Główne języki - historia 1983 C++ Opracowany przez Bjarne Stroustrupa w 1983 nazywany pierwotnie jako język C z klasami C++ (i++ vs ++i) koncepcje Simuli, Ady, ML dodane do języka C pierwszy język zorientowany obiektowo, który odniósł komercyjny sukces (lata 90.) stosowany do tworzenia aplikacji i systemów operacyjnych bardzo rozbudowana składnia

Główne języki - historia 1986 CLP/R Constraint Logic Programming pochodna języka Prolog logika z ograniczeniami, na wejściu tworzy się bazę faktów i reguł dodając jednocześnie ograniczenia poszukiwanego rozwiązania a następnie tworzy się zapytania umożliwienie rozwiązywania problemów z liniowymi ograniczeniami w dziedzinie liczb rzeczywistych stosowany w biologii molekularnej, finansach, modelowanie fizyczne 1986 Eiffel język obiektowy stworzenie praktycznego narzędzia do tworzenia wysokiej jakości oprogramowania ścisłe rozróżnienie metod funkcyjnych i proceduralnych. Pierwsze z wymienionych nie mogę modyfikować stanu obiektu a zwracane przez nie wartości nie mogą być ignorowane. Drugie natomiast, mogą modyfikować stan lecz nie mogą go ujawniać. /Wikipedia/

Główne języki - historia 1988 Mathematica komercyjny system obliczeń symbolicznych i numerycznych opracowany w 1988 przez Stephena Wolframa. W ciągu przeszło 20 lat istnienia Mathematica stała się bardzo popularna w środowisku naukowców i inżynierów. szerokie możliwości wizualizacji i prezentacji danych oraz przenośność; obecnie jest dostępna na większość platform 32- i 64-bitowych spośród Wolnego Oprogramowania podobne funkcje oferują programy MAXIMA oraz Sage

Główne języki - historia 1989 HTML HyperText Markup Language Tim Berners-Lee (CERN, 1980) język znaczników nie język programowania w jego składni nie przewidziano wyrażeń obliczeniowych, warunkowych czy iteracyjnych pozwala opisać strukturę informacji zawartych wewnątrz strony internetowej umożliwia określenie wyglądu dokumentu w przeglądarce internetowej wykorzystuje się pary znaczników umieszczone w nawiasach ostrokątnych, np. <title> i </title> lub <h1> i </h1> niezależność od systemu operacyjnego i wykorzystywanego sprzętu komputerowego

http://www.westnet.com/mirrors/99bottles/beer.html http://99-bottles-of-beer.net/