Systemy programowania: przykłady, opisy, funkcje

12.03.2019

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.

Elementy systemów oprogramowania

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:

  1. System operacyjny jest interfejsem pomiędzy aplikacją a komputerem.
  2. Narzędzia to małe, ale potężne programy o ograniczonych możliwościach do określonych zadań. Zwykle używane przez użytkowników w celu zapewnienia sprawnego działania systemu komputerowego.
  3. Programy biblioteczne są skompilowanym zbiorem rutyn, na przykład bibliotek. Zapewnij wiele funkcji i procedur dostępnych podczas pisania programu.
  4. Oprogramowanie do tłumaczenia: asembler, kompilator, tłumacz.
  5. Interpreter analizuje i wykonuje program języka wysokiego poziomu po jednej linii na raz.
  6. Oprogramowanie aplikacyjne zaprojektowane w celu ułatwienia użytkownikowi wykonywania określonych zadań, takich jak GIMP - do edycji zdjęć.

Przykład nowoczesnego systemu programowania obejmuje serwis i podstawowe oprogramowanie.

Pojęcie systemu programowania

Struktura programu

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ń:

  1. Wniosek o rozpoczęcie programu.
  2. Deklaracja zmiennej
  3. Instrukcje programu (bloki kodu).

Przykłady powitania w Hello World

Systemy programowania i powitania Hello World w różnych językach programowania wyraźnie pokazują podstawowe różnice.

Witaj, światowe pozdrowienia

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.

Deklaracja zmiennej

Poniższy rysunek przedstawia przykład systemu programowania dla struktury pętli, która uruchamia zestaw instrukcji, dopóki warunek nie jest spełniony.

Zestaw operatorów

Nieskończona pętla

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:

  1. C.
  2. C ++.
  3. Java
  4. PHP
  5. Python.
  6. Perl.
  7. Cobol.
  8. Ruby
  9. R.
  10. JavaScript
Przykłady programów C

Wynik:

  1. C.
  2. C ++.
  3. Cobol.
  4. Java
  5. JavaScript
  6. PHP
  7. Perl.
  8. Python.
  9. R.
  10. Ruby

Podstawowe narzędzia

Podstawowe narzędzia

Do programowania potrzebujesz kilku narzędzi. Schemat klasycznego systemu programowania:

  1. Edytor tekstu - narzędzia do edycji. To narzędzie pozwala pisać kod źródłowy. Jest to popularne narzędzie do programowania w dowolnym języku. Rzeczywiście, podczas programowania doceniają obecność takich funkcji, jak: autouzupełnianie, podświetlanie składni, wyszukiwanie, edycja, zamienniki części kodu i edytora wcięć.
  2. Kompilator lub interpreter. To narzędzie jest bezpośrednio związane z językiem programowania.
  3. Debugger Programiści, tak jak wszyscy, mogą się mylić. Szukanie i poprawianie błędów wymaga czasu. Debugger to narzędzie ułatwiające śledzenie. Pozwala na uruchamianie programu krok po kroku, aby zobaczyć jego status w dowolnym momencie, a także sprawdzić, czy część kodu jest wykonywana, czy nie.
  4. Procedury biblioteczne
  5. Towarzysząca dokumentacja.

Wzorce projektowe

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.

Przykład systemu programowania w JavaScript

Skompilowane języki

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.

Funkcje wyższego rzędu

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.

Języki maszyn wirtualnych

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.

Systemy programowania, Java Przykład

Przykłady języków i systemów programowania

Przedstawiamy najbardziej znane języki programowania:

  • Asembler. Nie jest nowy, ale nauczy użytkowników wielu rzeczy ukrytych w innych językach.
  • C. Jeden najczęściej używany na świecie. Ten język zapewnia pełną kontrolę nad maszyną. Służy do kodowania systemów operacyjnych. Przyzwoity wiek prawie półwiecza i ogromna liczba bibliotek, które nadają się do czegokolwiek, stają się niezbędne zarówno dla początkujących, jak i zaawansowanych użytkowników.
  • Cobol. To jest stary język. Zwykle jest trudniejsze w użyciu niż inne. Jednak ze względów historycznych jest nadal szeroko stosowany w bankowości, finansach i ubezpieczeniach.
  • Fortran. Jest wciąż poszukiwany w dziedzinie informatyki naukowej, dla której został opracowany. Chociaż składnia tego języka jest regularnie aktualizowana, jego wiek jest odczuwalny. Ponadto niektóre biblioteki oprogramowania w Fortranie nigdy nie były porównywane pod względem wydajności.
  • Java Posiada funkcję kompilacji do kodu bajtowego, który jest następnie interpretowany przez maszynę wirtualną. To znacznie upraszcza tworzenie programów do użytku na wielu platformach systemu operacyjnego. Na przykład Java jest bramą do kodowania aplikacji dla systemu Android.
  • Perl. Jest to język, który jest najbardziej ceniony w świecie Linuksa i Unixoids. Jest skuteczny do tworzenia małych, ale bardzo wydajnych aplikacji wiersza poleceń. Perl nie nadaje się jednak do tworzenia graficznych interfejsów.
  • PHP Dominujący w świecie programowania internetowego.
  • Python. Ten język jest zalecany dla początkujących.
  • Ruby Powiązany z Pythonem regularnie pożycza innowacje. Ogólnie są bardzo podobne. Możemy powiedzieć, że Ruby oferuje więcej wolności syntaktycznej, a więcej kładzie nacisk na jej obiektowy charakter, a Python jest łatwiejszy i obsługiwany przez większą społeczność.
  • Swift. Jest to dość młody język, podlegający zmianom i dostosowaniom, odpowiedni dla produktów Apple. W nadchodzących latach może stać się głównym produktem aplikacji programistycznych dla systemów iOS i OSX.

Aplikacja

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.

Programowanie PASCAL

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:

  1. PASCAL powinien zamknąć lub znacząco zmniejszyć lukę semantyczną.
  2. Każde oświadczenie PASCAL powinno być jak zdanie w tekście angielskim.
  3. Program PASCAL można uznać za ofertę w języku angielskim.
  4. Nazwy procedur, struktur danych i zmiennych w PASCAL powinny być łatwo rozpoznawalne.

Przykład systemu programowania w PASCAL

Poniżej znajduje się przykład określający liczbę liter w słowie.

Przykład systemu programowania pascalowego

PASCAL ułatwia kodowanie modułowe poprzez:

  1. Zastosowanie enkapsulacji kodu w procedurach i funkcjach.
  2. Używanie operatorów BEGIN i END do definiowania bloku funkcyjnego kodu.
  3. Zmienna ścisła (na przykład przypisywanie typów danych, takich jak liczba całkowita, rzeczywisty lub ciąg) w celu obsługi parametrów przekazywania między procedurami.
  4. Przyjazna składnia, która zawęża lukę semantyczną.
Systemy programowania Pascal

W podanym przykładzie systemu programowania Pascal program pokazuje wybór binarny (istnieją tylko dwa przypadki: ActualMark> = 50 lub ActualMark <50).

Typowe błędy w programowaniu

Powszechne błędy kodowania powinny być unikane. Dzięki temu użytkownik zaoszczędzi czas i uniknie problemów. Rodzaje błędów:

  1. Złe formatowanie kodu. Powinno być jasne. Powinien zawierać komentarze u góry programu.
  2. Złe testowanie i sprawdzanie błędów. Obsługa błędów przyjmuje dwie formy: obsługę wyjątków strukturalnych i sprawdzanie błędów funkcjonalnych.
  3. Zła praktyka komentowania.
  4. Nazwij niepewne zmienne. Bardzo trudno jest pracować nad kodem, gdy wiele nazw zmiennych jest krótkich, a nie opisowych.
  5. Wybór niewłaściwej struktury danych.

Podświetlanie i style wcięć są często używane, aby pomóc programistom rozpoznać elementy kodu źródłowego.

Kodowanie kolorów

Ważne jest, aby kodowanie kolorów było podświetlone w fragmencie kodu jako przykład systemu programowania napisanego w Pythonie.