Języki Programowania na Platformie.NET http://kaims.eti.pg.edu.pl/ goluch/ goluch@eti.pg.edu.pl
Maszyny z wbudowanym oprogramowaniem
Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu
Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu szybkość działania
Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu szybkość działania oprogramowanie ściśle powiązane z rozwiązywanym problemem (specjalizacja)
Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu szybkość działania oprogramowanie ściśle powiązane z rozwiązywanym problemem (specjalizacja) oprogramowanie zaszyte w projekcie mechanicznym (zmiana algorytmu wymagała mechanicznych modyfikacji)
Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu szybkość działania oprogramowanie ściśle powiązane z rozwiązywanym problemem (specjalizacja) oprogramowanie zaszyte w projekcie mechanicznym (zmiana algorytmu wymagała mechanicznych modyfikacji)
Programowalne maszyny ogólnego zastosowania
Programowalne maszyny ogólnego zastosowania uruchamianie kodu rozwiązującego dowolny problem
Programowalne maszyny ogólnego zastosowania uruchamianie kodu rozwiązującego dowolny problem kod maszynowy nie wymaga żadnej obróbki
Programowalne maszyny ogólnego zastosowania uruchamianie kodu rozwiązującego dowolny problem kod maszynowy nie wymaga żadnej obróbki małe wymagania pamięciowe
Programowalne maszyny ogólnego zastosowania uruchamianie kodu rozwiązującego dowolny problem kod maszynowy nie wymaga żadnej obróbki małe wymagania pamięciowe
Programowalne maszyny ogólnego zastosowania uruchamianie kodu rozwiązującego dowolny problem kod maszynowy nie wymaga żadnej obróbki małe wymagania pamięciowe powiązanie wykonywanego kodu z maszyną (brak przenośności kodu), początkowo nie była to wada (niewielka liczba komputerów)
Programowalne maszyny ogólnego zastosowania uruchamianie kodu rozwiązującego dowolny problem kod maszynowy nie wymaga żadnej obróbki małe wymagania pamięciowe powiązanie wykonywanego kodu z maszyną (brak przenośności kodu), początkowo nie była to wada (niewielka liczba komputerów) trudność wprowadzania zmian, wymagana znajomość kodów binarnych rozkazów
Programowalne maszyny ogólnego zastosowania uruchamianie kodu rozwiązującego dowolny problem kod maszynowy nie wymaga żadnej obróbki małe wymagania pamięciowe powiązanie wykonywanego kodu z maszyną (brak przenośności kodu), początkowo nie była to wada (niewielka liczba komputerów) trudność wprowadzania zmian, wymagana znajomość kodów binarnych rozkazów
Programowalne maszyny ogólnego zastosowania uruchamianie kodu rozwiązującego dowolny problem kod maszynowy nie wymaga żadnej obróbki małe wymagania pamięciowe powiązanie wykonywanego kodu z maszyną (brak przenośności kodu), początkowo nie była to wada (niewielka liczba komputerów) trudność wprowadzania zmian, wymagana znajomość kodów binarnych rozkazów
Assembler
Assembler uniezależnienie kodu od komputera
Assembler uniezależnienie kodu od komputera wymusza na programiście dokładną znajomość działania sprzętu
Assembler uniezależnienie kodu od komputera wymusza na programiście dokładną znajomość działania sprzętu powiązanie wykonywanego kodu z architekturą
Assembler uniezależnienie kodu od komputera wymusza na programiście dokładną znajomość działania sprzętu powiązanie wykonywanego kodu z architekturą jedno polecenie Asemblera odpowiada zwykle jednemu rozkazowi maszynowemu
Assembler uniezależnienie kodu od komputera wymusza na programiście dokładną znajomość działania sprzętu powiązanie wykonywanego kodu z architekturą jedno polecenie Asemblera odpowiada zwykle jednemu rozkazowi maszynowemu każda architektura ma swój unikalny Asembler
Assembler uniezależnienie kodu od komputera wymusza na programiście dokładną znajomość działania sprzętu powiązanie wykonywanego kodu z architekturą jedno polecenie Asemblera odpowiada zwykle jednemu rozkazowi maszynowemu każda architektura ma swój unikalny Asembler
Kompilatory
Kompilatory uniezależnienie kodu od assemblera
Kompilatory uniezależnienie kodu od assemblera pełne uniezależnienie kodu od sprzętu i architektury
Kompilatory uniezależnienie kodu od assemblera pełne uniezależnienie kodu od sprzętu i architektury
Kompilatory uniezależnienie kodu od assemblera pełne uniezależnienie kodu od sprzętu i architektury struktura kodu oparta przeważnie o instrukcje skoku
Kompilatory uniezależnienie kodu od assemblera pełne uniezależnienie kodu od sprzętu i architektury struktura kodu oparta przeważnie o instrukcje skoku trudność wprowadzania zmian w kodzie
Kompilatory uniezależnienie kodu od assemblera pełne uniezależnienie kodu od sprzętu i architektury struktura kodu oparta przeważnie o instrukcje skoku trudność wprowadzania zmian w kodzie brak technik wielokrotnego użycia kodu
Kompilatory uniezależnienie kodu od assemblera pełne uniezależnienie kodu od sprzętu i architektury struktura kodu oparta przeważnie o instrukcje skoku trudność wprowadzania zmian w kodzie brak technik wielokrotnego użycia kodu
Programowanie strukturalne
Programowanie strukturalne eliminacja niepożądanych związków ze struktury programu (np. goto)
Programowanie strukturalne eliminacja niepożądanych związków ze struktury programu (np. goto) notacja BNF jasno opisująca składnę dla parsera http://kaims.eti.pg.gda.pl/ ~goluch/wyk/1817.csharp4.html
Programowanie strukturalne eliminacja niepożądanych związków ze struktury programu (np. goto) notacja BNF jasno opisująca składnę dla parsera http://kaims.eti.pg.gda.pl/ ~goluch/wyk/1817.csharp4.html
Programowanie strukturalne eliminacja niepożądanych związków ze struktury programu (np. goto) notacja BNF jasno opisująca składnę dla parsera http://kaims.eti.pg.gda.pl/ ~goluch/wyk/1817.csharp4.html Rozdzielenie danych oraz wykonywanych na nich operacji
Programowanie strukturalne eliminacja niepożądanych związków ze struktury programu (np. goto) notacja BNF jasno opisująca składnę dla parsera http://kaims.eti.pg.gda.pl/ ~goluch/wyk/1817.csharp4.html Rozdzielenie danych oraz wykonywanych na nich operacji Rosnąca złożoność oprogramowania wymaga podzialu kodu aplikacji części
Programowanie strukturalne eliminacja niepożądanych związków ze struktury programu (np. goto) notacja BNF jasno opisująca składnę dla parsera http://kaims.eti.pg.gda.pl/ ~goluch/wyk/1817.csharp4.html Rozdzielenie danych oraz wykonywanych na nich operacji Rosnąca złożoność oprogramowania wymaga podzialu kodu aplikacji części
Programowanie proceduralne
Programowanie proceduralne wielokrotne użycie kodu (funkcje)
Programowanie proceduralne wielokrotne użycie kodu (funkcje)
Programowanie proceduralne wielokrotne użycie kodu (funkcje) powiązanie funkcji zmiennymi (w szczególności globalnymi)
Programowanie proceduralne wielokrotne użycie kodu (funkcje) powiązanie funkcji zmiennymi (w szczególności globalnymi) zmiana kodu jednej funkcji może mieć wpływ na działanie innej
Programowanie proceduralne wielokrotne użycie kodu (funkcje) powiązanie funkcji zmiennymi (w szczególności globalnymi) zmiana kodu jednej funkcji może mieć wpływ na działanie innej
Programowanie obiektowe
Programowanie obiektowe wielokrotne użycie kodu (klasy)
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie wygenerowana aplikacja miała postać jednolitego programu
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie wygenerowana aplikacja miała postać jednolitego programu awaria obiektu powodowała awarię całego procesu
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie wygenerowana aplikacja miała postać jednolitego programu awaria obiektu powodowała awarię całego procesu brak serializacji i utrwalania obiektów
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie wygenerowana aplikacja miała postać jednolitego programu awaria obiektu powodowała awarię całego procesu brak serializacji i utrwalania obiektów każda zmiana wymagała wdrożenia dużej ilości kodu
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie wygenerowana aplikacja miała postać jednolitego programu awaria obiektu powodowała awarię całego procesu brak serializacji i utrwalania obiektów każda zmiana wymagała wdrożenia dużej ilości kodu
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie ścisłe powiązanie aplikacji z językiem
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie ścisłe powiązanie aplikacji z językiem ponowne użycie obiektu wymaga dostępu do kodu źródłowego
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie ścisłe powiązanie aplikacji z językiem ponowne użycie obiektu wymaga dostępu do kodu źródłowego dziedziczenie wymaga szczegółowej wiedzy o implementacji klasy bazowej
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie ścisłe powiązanie aplikacji z językiem ponowne użycie obiektu wymaga dostępu do kodu źródłowego dziedziczenie wymaga szczegółowej wiedzy o implementacji klasy bazowej brak uwierzytelniania i autoryzacji na poziomie pojedynczego procesu
Programowanie obiektowe wielokrotne użycie kodu (klasy) metody i przetwarzane dane powiązane w obiekty abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie ścisłe powiązanie aplikacji z językiem ponowne użycie obiektu wymaga dostępu do kodu źródłowego dziedziczenie wymaga szczegółowej wiedzy o implementacji klasy bazowej brak uwierzytelniania i autoryzacji na poziomie pojedynczego procesu
Biblioteki
Biblioteki ponowne użycie obiektu nie wymaga dostępu do kodu źródłowego
Biblioteki ponowne użycie obiektu nie wymaga dostępu do kodu źródłowego łatwiejsza aktualizacja programów (b. dynamiczne)
Biblioteki ponowne użycie obiektu nie wymaga dostępu do kodu źródłowego łatwiejsza aktualizacja programów (b. dynamiczne) oszczędność pamięci (b. dynamiczne)
Biblioteki ponowne użycie obiektu nie wymaga dostępu do kodu źródłowego łatwiejsza aktualizacja programów (b. dynamiczne) oszczędność pamięci (b. dynamiczne)
Biblioteki ponowne użycie obiektu nie wymaga dostępu do kodu źródłowego łatwiejsza aktualizacja programów (b. dynamiczne) oszczędność pamięci (b. dynamiczne) pozostałe wady związane z programowaniem obiektowym
Biblioteki ponowne użycie obiektu nie wymaga dostępu do kodu źródłowego łatwiejsza aktualizacja programów (b. dynamiczne) oszczędność pamięci (b. dynamiczne) pozostałe wady związane z programowaniem obiektowym piekło zależności (b. dynamiczne)
Biblioteki ponowne użycie obiektu nie wymaga dostępu do kodu źródłowego łatwiejsza aktualizacja programów (b. dynamiczne) oszczędność pamięci (b. dynamiczne) pozostałe wady związane z programowaniem obiektowym piekło zależności (b. dynamiczne)
Komponenty
Komponenty interfejs jako podstawowa jednostka wielokrotnego użytku
Komponenty interfejs jako podstawowa jednostka wielokrotnego użytku współpraca kodu napisanego w różnych językach
Komponenty interfejs jako podstawowa jednostka wielokrotnego użytku współpraca kodu napisanego w różnych językach współdzielenie matadanych typów
Komponenty interfejs jako podstawowa jednostka wielokrotnego użytku współpraca kodu napisanego w różnych językach współdzielenie matadanych typów dynamiczne ładowanie komponentów
Komponenty interfejs jako podstawowa jednostka wielokrotnego użytku współpraca kodu napisanego w różnych językach współdzielenie matadanych typów dynamiczne ładowanie komponentów pośrednik ukrywający zdalne wywołania
Komponenty interfejs jako podstawowa jednostka wielokrotnego użytku współpraca kodu napisanego w różnych językach współdzielenie matadanych typów dynamiczne ładowanie komponentów pośrednik ukrywający zdalne wywołania
Komponenty skomplikowana technologia
Komponenty skomplikowana technologia brak języków komponentowych
Komponenty skomplikowana technologia brak języków komponentowych
Komponenty skomplikowana technologia brak języków komponentowych
Języki komponentowe
Języki komponentowe wspólny system typów (CTS)
Języki komponentowe wspólny system typów (CTS) mechanizm wczytywania podzespołów (assembly loader)
Języki komponentowe wspólny system typów (CTS) mechanizm wczytywania podzespołów (assembly loader) serializacja
Języki komponentowe wspólny system typów (CTS) mechanizm wczytywania podzespołów (assembly loader) serializacja zarządzanie wersjami
Języki komponentowe wspólny system typów (CTS) mechanizm wczytywania podzespołów (assembly loader) serializacja zarządzanie wersjami
Języki komponentowe kod ściśle związany z technologią i platformą
Języki komponentowe kod ściśle związany z technologią i platformą brak zarządzania współbieżnością
Języki komponentowe kod ściśle związany z technologią i platformą brak zarządzania współbieżnością zarządzanie transakcjami (manager transakcji)
Języki komponentowe kod ściśle związany z technologią i platformą brak zarządzania współbieżnością zarządzanie transakcjami (manager transakcji) brak odseparowania od szczegółów implementacyjnych komunikacji
Języki komponentowe kod ściśle związany z technologią i platformą brak zarządzania współbieżnością zarządzanie transakcjami (manager transakcji) brak odseparowania od szczegółów implementacyjnych komunikacji niejednolite mechanizmy zabezpieczeń
Języki komponentowe kod ściśle związany z technologią i platformą brak zarządzania współbieżnością zarządzanie transakcjami (manager transakcji) brak odseparowania od szczegółów implementacyjnych komunikacji niejednolite mechanizmy zabezpieczeń
Usługi
Usługi możliwość współpracy wielu technologii
Usługi możliwość współpracy wielu technologii zarządzanie transakcjami
Usługi możliwość współpracy wielu technologii zarządzanie transakcjami zarządzanie współbieżnością usług
Usługi możliwość współpracy wielu technologii zarządzanie transakcjami zarządzanie współbieżnością usług odseparowanie od szczegółów implementacyjnych komunikacji
Usługi możliwość współpracy wielu technologii zarządzanie transakcjami zarządzanie współbieżnością usług odseparowanie od szczegółów implementacyjnych komunikacji
Usługi możliwość współpracy wielu technologii zarządzanie transakcjami zarządzanie współbieżnością usług odseparowanie od szczegółów implementacyjnych komunikacji trudność wersjonowania
Usługi możliwość współpracy wielu technologii zarządzanie transakcjami zarządzanie współbieżnością usług odseparowanie od szczegółów implementacyjnych komunikacji trudność wersjonowania stabilność (przy wołaniach synchronicznych zależy od stabilności sieci/komunikacji)
Usługi możliwość współpracy wielu technologii zarządzanie transakcjami zarządzanie współbieżnością usług odseparowanie od szczegółów implementacyjnych komunikacji trudność wersjonowania stabilność (przy wołaniach synchronicznych zależy od stabilności sieci/komunikacji)
Programowanie Funkcyjne
Programowanie Funkcyjne brak instrukcji przypisania i instrukcji sterujących przepływem programu (uproszczenie kodu)
Programowanie Funkcyjne brak instrukcji przypisania i instrukcji sterujących przepływem programu (uproszczenie kodu) zwięzły i czytelny kod
Programowanie Funkcyjne brak instrukcji przypisania i instrukcji sterujących przepływem programu (uproszczenie kodu) zwięzły i czytelny kod brak zmiennych pozwala na dobrą optymalizację kodu
Programowanie Funkcyjne brak instrukcji przypisania i instrukcji sterujących przepływem programu (uproszczenie kodu) zwięzły i czytelny kod brak zmiennych pozwala na dobrą optymalizację kodu
Programowanie Funkcyjne kod oparty o rekurencję osłabia wydajność obliczeniową i pamięciową
Programowanie Funkcyjne kod oparty o rekurencję osłabia wydajność obliczeniową i pamięciową pasuje jedynie do problemów opisywanych matematycznymi zależnościami i wyrażeń
Programowanie Funkcyjne kod oparty o rekurencję osłabia wydajność obliczeniową i pamięciową pasuje jedynie do problemów opisywanych matematycznymi zależnościami i wyrażeń brak dostępu do sprzetu (bardzo wysoki poziom abstrakcji)
Programowanie Funkcyjne kod oparty o rekurencję osłabia wydajność obliczeniową i pamięciową pasuje jedynie do problemów opisywanych matematycznymi zależnościami i wyrażeń brak dostępu do sprzetu (bardzo wysoki poziom abstrakcji)
Dziękuje za uwagę