Systemy programistyczne stanowią platformę do tworzenia oprogramowania aplikacyjnego i współdziałania bezpośrednio ze sprzętem komputerowym w celu uzyskania niezbędnej wydajności podczas wykonywania zadań użytkownika. Platforma może być używana do programowania aplikacji na iPhone'a, iPada i systemy operacyjne Android przy użyciu języka programowania Java. Interfejs Android Studio i Oracle Java SDK, w połączeniu z niezbędną podstawową wiedzą, pozwala tworzyć różnorodne aplikacje.
Na początek opowiedzmy o koncepcji systemów programowania. Te, których teraz używamy, należą do okresu trzeciej generacji komputerów. Programowanie systemu to tworzenie oprogramowania. Może wykonywać wiele różnych zadań. Bez niego większość sprzętu nie spełniałaby swoich funkcji. Aby były przydatne, użyj oprogramowania. Użytkownik musi wybrać żądany program dla każdego zadania.
Elementy klasycznego systemu programowania:
Przykład nowoczesnego systemu programowania obejmuje serwis i podstawowe oprogramowanie.
Ogólna forma programu zwraca szczególną uwagę na poszczególne elementy i relacje między nimi. Programy są dobre lub mają słabą strukturę. Dzięki dobrze zorganizowanemu programowi podziały komponentów są zgodne z zasadami, na przykład ukrywaniem informacji, a interfejsy między komponentami są jasne i proste. Na bardziej subtelnym poziomie wykorzystuje odpowiednie struktury danych i jednostki oprogramowania z jednym punktem wejścia i jednym punktem wyjścia.
Przy źle skonstruowanym programie podział na komponenty jest w dużej mierze arbitralny, a interfejsy są niejawne i złożone. Ponadto taki program ma arbitralne struktury danych i przepływ sterowania. Prawie wszystkie zorganizowane programy mają ogólny charakter działań:
Systemy programowania i powitania Hello World w różnych językach programowania wyraźnie pokazują podstawowe różnice.
Aby użyć zmiennej wewnątrz programu, kompilator musi wcześniej znać typ danych, które będą w nim przechowywane. Z tego powodu zmienne są deklarowane na początku programu.
Deklaracja zmiennych składa się z określania nowej nazwy i typu danych dla zmiennej. Zwykle robi się to na samym początku.
Poniższy rysunek przedstawia przykład systemu programowania dla struktury pętli, która uruchamia zestaw instrukcji, dopóki warunek nie jest spełniony.
To jest ta, która nie ma funkcjonującej procedury wyjścia. W wyniku tego cykl powtarza się w sposób ciągły, aż system operacyjny wyczuje go i zatrzyma program z błędem lub do wystąpienia innego zdarzenia, na przykład program zatrzyma się automatycznie po określonym czasie.
Poniżej przedstawiono systemy programowania i przykłady programów C dla programu do sortowania ciągów w słowniku. Ten program pobiera 10 słów (linii) od użytkownika i sortuje je w porządku leksykograficznym. Na przykład 10 języków programowania:
Wynik:
Do programowania potrzebujesz kilku narzędzi. Schemat klasycznego systemu programowania:
Korzystanie z szablonu projektu ma na celu ustrukturyzowanie programu lub użycie narzędzi językowych i tak wyraźne, jak to tylko możliwe, aby zapewnić systematyczne podejście do programowania, a także połączenie z bazą danych szablonów, tworząc stronę, która wyświetli niestandardowy wygląd. Bardziej ogólnie, wzorzec projektowania jest wielozadaniowym i zaawansowanym rozwiązaniem.
Struktura oprogramowania (lub struktura) jest specjalnym rodzajem biblioteki oprogramowania. Jego pierwszym celem jest połączenie programowania, dostarczenie jak największej ilości narzędzi, których potrzebujesz. Na przykład Django 2 to struktura w języku Python zaprojektowana w celu ułatwienia tworzenia reaktywnych stron internetowych. Tworzy strukturę i oferuje typowe narzędzia, których mogą potrzebować wszystkie witryny (interfejs administracyjny, usługi uwierzytelniania, metoda tłumaczenia witryny na kilka języków itp.).
Innym przykładem jest obecność kilku frameworków w JavaScript (jQuery lub angular.js) z jednym celem - te same działania powinny być napisane inaczej w zależności od typu przeglądarki używanej przez odwiedzającego stronę. Mają unikalny interfejs, który przekształca go w kod zrozumiały dla każdej przeglądarki. Na zdjęciu przykład systemu programowania w języku JavaScript do zadania otwierania nowego okna po kliknięciu przycisku.
Język programowania to zestaw porozumień i abstrakcji, które umożliwiają napisanie tego, czego użytkownik potrzebuje, aby komputer wygenerował wynik w bardziej zrozumiałej formie. Kompilacja polega na przekonwertowaniu kodu źródłowego na plik wykonywalny. Ta konwersja jest wykonywana przez kompilator. Różnica w szybkości wykonania jest ogromna. Ogólnie rzecz biorąc, wszystkie inne rzeczy są równe, program na skompilowanym języku będzie działał około dziesięć razy szybciej niż zinterpretowany. Poniżej znajduje się przykład systemu programowania C. Pokazuje program wykorzystujący tak zwane funkcje wyższego rzędu i czyste funkcje.
W przypadku języków interpretowanych kod źródłowy jest dostarczany do interpretera, który bezpośrednio wykonuje program. Nie trzeba się martwić o system operacyjny lub typ procesora, ponieważ musi on być zainstalowany na komputerze użytkownika. Co więcej, ponieważ kod źródłowy musi być "tłumaczony" na kod maszynowy przy każdym wykonaniu, języki interpretowane są często wolne w porównaniu z odpowiednimi językami kompilowanymi. Jednocześnie interpretatorzy nie optymalizują generowanego kodu maszynowego, co powoduje, że działają wolniej, ale proces generowania kodu maszynowego jest szybszy niż w przypadku kompilatorów.
Często skracane, nazywane są "językami VM" (zgodnie z analogiami angielskiej nazwy maszyny wirtualnej). Zasada działania i cel systemu programowania polega na tym, że kod źródłowy nie jest tłumaczony na kod maszynowy, zrozumiały dla określonego procesora, lecz na "manekina" (kod bajtowy), który sam będzie interpretowany przez język maszyny wirtualnej. Taki język ma zalety i wady.
Podobnie jak w językach interpretowanych, program skompilowany do kodu bajtowego może działać na dowolnym systemie operacyjnym i procesorze, pod warunkiem, że maszyna wirtualna jest dostępna dla tej kombinacji. Z drugiej strony, ponieważ istniała kompilacja typu "upstream", program działa szybciej niż równoważny język interpretowany. Często osiąga prędkość podobną do "prawdziwego" języka kodu maszynowego. Wynika to jednak z faktu, że maszyna wirtualna może być dość zasobochłonna, szczególnie w pamięci.
Na koniec możesz tworzyć nowe języki, które będą kompilowane w tym samym kodzie bajtowym, co inny istniejący język, co upraszcza ich interakcje. Jest to jedno z zadań systemu programowania. Przykładem jest kompilacja języków Clojure i Frege dla kodu bajtowego Java. Są one funkcjonalne i radykalnie różne od Javy w swoich projektach. W takim przypadku możesz napisać różne części programu za pomocą jednego z najbardziej odpowiednich języków i sprawić, by działały razem na maszynie wirtualnej. Java to język najlepiej skompilowany na maszynie wirtualnej. Ale potrzebujesz aplikacji składającej się z zestawu klas Java. Na początku każdej klasy istnieje określona struktura, taka jak JavaClassFileFormat.
Przedstawiamy najbardziej znane języki programowania:
Prezentujemy przykład kodu maszynowego:
110101010010001000111001001 010101001000100001011101001 000111001101110001101101010 001111010010010101011001010 001010101111110100101010001.
Jak widać, w tym typie kodu istnieje bardzo mało wyróżniająca się struktura. W językach programowania luka semantyczna to różnica między językiem używanym do programowania sprzętu (kodu maszynowego) a językiem, który musi być używany do programowania komputera jako systemu. Przykład systemu programowania: strona kliencka JavaScript wymagać będzie użycia dwóch języków, z wyjątkiem tego, który generuje JavaScript (CoffeScript lub Elm).
Po stronie serwera, PHP zajmuje najwyższe pozycje, ale Python i Ruby również są aktywnie wykorzystywane. JavaScript jest również używany po stronie serwera, dzięki NodeJS. W przypadku gier wideo w systemie Windows używane są C ++, Python i C #. Jednak nie są jedynymi. Dobrym językiem może być dowolny język, który umożliwia łatwe tworzenie interfejsu graficznego (C, Java, Ruby lub Tcl / Tk).
W przypadku dużych aplikacji, C ++ i Java dominują na rynku, chociaż C # również nabiera tempa. W przypadku niewielkich aplikacji użytkowych, szczególnie w linii poleceń, łatwo jest znaleźć C, Perl, Python lub Ruby. W dziedzinie informatyki naukowej Fortran pozostaje królem. Coraz częściej konkuruje z C ++, Python lub specjalistycznymi językami takimi jak Matlab i R.
W całej historii komputerów podjęto setki prób stworzenia języków programowania komputerowego, takich jak angielski - łatwy do odczytania i łatwy do zrozumienia. PASCAL jest wynikiem jednego z takich wysiłków. Twórca PASCAL, Nicholas Wirth, chciał HLL, który można łatwo nauczyć, czytać i pisać. Opracował PASCAL w oparciu o następujące koncepcje:
Poniżej znajduje się przykład określający liczbę liter w słowie.
PASCAL ułatwia kodowanie modułowe poprzez:
W podanym przykładzie systemu programowania Pascal program pokazuje wybór binarny (istnieją tylko dwa przypadki: ActualMark> = 50 lub ActualMark <50).
Powszechne błędy kodowania powinny być unikane. Dzięki temu użytkownik zaoszczędzi czas i uniknie problemów. Rodzaje błędów:
Podświetlanie i style wcięć są często używane, aby pomóc programistom rozpoznać elementy kodu źródłowego.
Ważne jest, aby kodowanie kolorów było podświetlone w fragmencie kodu jako przykład systemu programowania napisanego w Pythonie.