Pojęcia związane z aplikacjami internetowymi.

advertisement
Pojęcia związane z aplikacjami internetowymi.
Program komputerowy (ang. computer program) - sekwencja symboli zapisana
w jakimś języku programowania opisująca obliczenia (ciąg instrukcji) zgodnie z
pewnymi regułami opisującymi dany język programowania. Program jest
zazwyczaj wykonywany przez komputer (np. wyświetlenie strony internetowej),
czasami bezpośrednio – jeśli wyrażony jest w języku zrozumiałym dla danej
maszyny lub pośrednio – gdy jest interpretowany przez inny program (interpreter).
Programowanie komputerów – proces projektowania, tworzenia, testowania i
utrzymywania kodu źródłowego programu komputerowego.
Język programowania – Podobnie jak języki naturalne, język programowania
składa się ze zbiorów reguł syntaktycznych oraz semantyki, które opisują, jak
należy budować poprawne wyrażenia oraz jak komputer ma je rozumieć.
Słowo kluczowe (ang. keyword) w języku programowania oznacza słowo mające
szczególne znaczenie i oznaczające określony rozkaz, instrukcję lub deklarację w
programie komputerowym. Lista słów kluczowych jest najczęściej ustalona dla
danego standardu języka wraz z rozszerzeniami określonego producenta
kompilatora. W zależności od języka programowania pisownia słów kluczowych
może wymagać (lub nie) pisania ich małymi lub dużymi literami oraz
zachowywania określonej składni.
Kod źródłowy (ang. source code) to zapis programu komputerowego
umożliwiający wykonie go w
określonym języku programowania, opisujący
operacje jakie powinien wykonać komputer. Kod źródłowy jest wynikiem pracy
programisty. Kod źródłowy pozwala wyrazić w czytelnej dla człowieka formie
strukturę i działanie programu komputerowego. Gotowy kod źródłowy jest zwykle
zapisywany do pliku tekstowego. Określenie „wykonanie kodu źródłowego” jest
równoważne wykonaniu programu zapisanego tym kodem. Przed wykonaniem
kod źródłowy musi zostać poddany translacji na kod wynikowy – w procesie
kompilacji jest tłumaczony do postaci kodu wynikowego, najczęściej kodu
maszynowego. Możliwe jest także wykonywanie „w locie” programu zapisanego
kodem źródłowym przy pomocy interpretera.
Translator – program komputerowy (lub urządzenie), dokonujący tłumaczenia
(translacji) programu napisanego w języku programowania, z postaci źródłowej do
postaci wynikowej możliwej do wykonania przez maszynę (potocznie: „zrozumiałą
dla maszyny”). Czasami zamiast kod wynikowy używa się równoważnego
określenia kod obiektowy. Translatory dzieli się na dwie grupy: kompilatory
tłumaczące programy zapisane w językach wysokiego poziomu oraz assemblery
tłumaczące programy zapisane w językach symbolicznych.
Asembler (z ang. assembler) – program tworzący kod maszynowy na podstawie
kodu źródłowego (tzw. asemblacja) wykonanego w niskopoziomowym języku
programowania bazującym na podstawowych operacjach procesora zwanym
językiem asemblera, popularnie nazywanym również asemblerem. W tym artykule
język programowania nazywany będzie językiem asemblera, a program
tłumaczący – asemblerem.
Język maszynowy, kod maszynowy – zestaw rozkazów procesora, w którym
zapis programu wyrażony jest w postaci liczb binarnych stanowiących rozkazy
oraz ich argumenty. Był to jedyny język programowania komputerów zerowej
generacji, a powszechnym w początkowym okresie rozwoju komputerów pierwszej
generacji. Kod maszynowy może być generowany w procesie kompilacji lub
asemblacji. W trakcie procesu tworzenia kodu maszynowego tworzony jest często
kod pośredni zapisywany w pliku obiektowym. Następnie kod pośredni pobrany z
pliku obiektowego poddawany jest konsolidacji (linkowaniu) w celu utworzenia
ostatecznego kodu maszynowego.
Kompilator - program służący do automatycznego tłumaczenia kodu napisanego
w języku źródłowym na równoważny kod w języku wynikowym. Proces ten
nazywany jest kompilacją. W informatyce kompilatorem nazywa się najczęściej
program do tłumaczenia kodu źródłowego w języku programowania na język
maszynowy. Jednakże niektóre z nich tłumaczą najpierw do języka asemblera, a
ten jest tłumaczony na język maszynowy przez asembler. Różnica pomiędzy
kompilatorem a asemblerem polega na tym, iż każde polecenie języka
programowania może zostać rozbite na wiele podpoleceń języka maszynowego
Interpreter – program komputerowy, który analizuje kod źródłowy programu, a
przeanalizowane fragmenty wykonuje. Wykonanie programu za pomocą
interpretera jest wolniejsze, a do tego zajmuje więcej zasobów systemowych niż
wykonanie kodu skompilowanego, lecz może zająć relatywnie mniej czasu niż
kompilacja i uruchomienie. Jest to zwłaszcza ważne przy tworzeniu i testowaniu
kodu, kiedy cykl edycja-interpretacja-debugowanie może często być znacznie
krótszy niż cykl edycja-kompilacja-uruchomienie-debugowanie.
Moduł -wydzielony fragment programu komputerowego. Dzięki podzieleni
programu na fragmenty ułatwione jest tworzenie każdego fragmentu przez innego
programistę.
Konsolidator (ang. linker) lub program konsolidujący to jeden z programów
składowych kompilatora. Konsolidator w trakcie procesu konsolidacji łączy
zadane pliki obiektowe i biblioteki statyczne tworząc w ten sposób plik
wykonywalny.
Aplikacja – program użytkowy wykonujący określone zadania. I oferujący
interfejs użytkownika. Często jest używany zamiennie z pojęciem program
komputerowy, różnią się tym że program nie musi mieć interfejsu użytkownika a
aplikacja musi mieć.
Aplikacja konsolowa - nie ma interfejsu graficznego i wykonuję się w trybie
tekstowym wiersza poleceń (cmd w Windows lub podobne w Linux)
Aplikacja internetowa, (ang.) web application – zwana również aplikacją
webową, to program komputerowy, który pracuje na serwerze i komunikuje się
poprzez sieć komputerową z hostem użytkownika komputera z wykorzystaniem
przeglądarki internetowej użytkownika, będącego w takim przypadku
interaktywnym klientem aplikacji internetowej.
W pracy aplikacji internetowej musi pośredniczyć serwer WWW. Do
przygotowania samej aplikacji używa się różnych mechanizmów (np. CGI, JSP,
ASP.NET) i języków (np. PHP, Java, C#), jak również serwerów aplikacji.
Mechanizm prezentacji danych w przeglądarce określa się czasem mianem
cienkiego klienta. Przykładem aplikacji internetowej jest mechanizm edycji treści
encyklopedii Wikipedia. Inne witryny WWW należące do tej kategorii to np. serwis
aukcyjny Allegro czy księgarnia internetowa Merlin.
Aplet (ang. applet – zdrobnienie od aplikacja) – zwykle niewielki program
napisany w taki sposób, by mógł zostać osadzony w stronie WWW wprost i
wykonany przez przeglądarkę internetową na komputerze, na którym jest ona
uruchomiona – najczęściej jest to kod JavaScript, ale też Java, VBScript, Tcl,
kontrolek ActiveX (stosowanych tylko w przeglądarce MS Internet Explorer z
ogólnym zaleceniem ich wyłączenia ze względu na bezpieczeństwo)
Język programowania dokładniej.
Język programowania pozwala na precyzyjny zapis algorytmów oraz innych
zadań, jakie komputer ma wykonać z wykorzystaniem określonej struktury
składniowej danach oraz sterujący przepływem tych danych.
Język programowania może być zdefiniowany ze względu na kilka cech:
• funkcja:
język
programowania
służy
do
tworzenia
programów
komputerowych,
których
zadaniem
jest
przetwarzanie
danych,
wykonywanie obliczeń i algorytmów oraz kontrolowanie/obsługa
zewnętrznych urządzeń, np. drukarek, robotów itd.
• przeznaczenie: języki naturalne służą do komunikacji między ludźmi,
natomiast języki programowania umożliwiają wydawanie poleceń
maszynom. Niektóre z języków są wykorzystywane również do
kontrolowania jednego urządzenia przez inne. Przykładowo, program
wykonywany na komputerze może wygenerować kod PostScript do
sterowania pracą drukarki bądź wyświetlacza.
• konstrukcje składniowe: język programowania może zawierać konstrukcje
składniowe do manipulowania strukturami danych oraz zarządzania
przepływem sterowania.
• moc: teoria obliczeń klasyfikuje języki według rodzajów obliczeń, które
można za ich pomocą zrealizować . We wszystkich językach zupełnych da
się zaimplementować ten sam zbiór algorytmów. Przykładem języka
niezupełnego jest SQL służący do komunikacji z bazą danych.
Postać programu wyrażona w języku programowania określana jest jako kod
źródłowy. Na język programowania składa się kilka elementów:
składnia – zbiór reguł opisujący sposób definiowania struktur danych rodzaje
słów kluczowych i symboli oraz zasady według których te symbole mogą być
łączone w większe struktury
semantyka - Semantyka języka programowania definiuje precyzyjnie znaczenie
poszczególnych symboli oraz ich funkcję w programie. Semantykę najczęściej
definiuje się słownie. Część błędów semantycznych można wychwycić już w
momencie wstępnego przetwarzania kodu programu, np. próbę odwołania się do
nieistniejącej funkcji, lecz inne mogą ujawnić się dopiero w trakcie wykonywania.
Typy danych - Każdy język operuje na jakimś zestawie danych, dlatego
niezbędne jest podzielenie danych na odpowiednie typy, zdefiniowane ich
właściwości oraz operacji, jakie można na nich realizować. Większość języków
posiada typy danych do reprezentowania:
• liczb całkowitych w różnych zakresach
• liczb zmiennoprzecinkowych (reprezentacje liczb rzeczywistych o różnym
stopniu dokładności)
• ciągów tekstowych
Od strony sprzętowej wszystkie te informacje wyrażane są za pomocą sekwencji
zer i jedynek. Język programowania nakłada jedynie odpowiednie ograniczenia i
zasady ich przetwarzania. Zjawisko konwersji wartości jednego typu na inną
nazywa się rzutowaniem.
Przykłady języków programowania:
C, Java, Objective-C, C++, C#, (Visual) Basic, PHP, Python, JavaScript, Visual
Basic .NET, Ruby, Transact-SQL, Perl, F#, Język asemblera, Lisp, PL/SQL,
MATLAB, Delphi/Object Pascal, D
Wybór jaki jeżyk użyjemy zależy od przebaczenia aplikacji, upodobań
programisty, strategi firmy i istniejącej infrastruktury.
Kompilatory.
Kompilator – program służący do automatycznego tłumaczenia kodu napisanego
w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku
wynikowym). Proces ten nazywany jest kompilacją. Jeżeli w jej trakcie zostaną
wykryte niezgodności z regułami języka programowania to kompilacja zostanie
przerwana a programista zostanie poinformowany o rodzaju błędu.
Na proces kompilacji składają się następujące etapy:
• wstępne przetwarzanie kodu: wykonanie poleceń preprocesora.
• analiza leksykalna
• analiza składniowa (ang. parsing)
• analiza semantyczna
• optymalizacja kodu wynikowego
• generacja kodu.
Wstępne przetwarzanie kodu – wykonywane prze preprocesor który wyszukuje
w programie specjalne polecenia i je wykonuje. Np dotleniacze zawartości innego
pliku lub pominięcie fragmentu kodu. Polecenia te w języku C++ zaczynają się od
znaku # np. #include #define
Analiza leksykalna (lexical analysis), wstępne czynności dokonywane przez
kompilator na tekście programu, obejmujące podział tekstu programu na ciąg
symboli, które sprawdza się pod względem gramatycznej poprawności i umieszcza
na wspólnym wykazie, przypisując im odpowiednie kody.
Analiza składniowa (ang. syntax analysis ) -inaczej parsowanie (ang. parsing)
sprawdzenie poprawności składniowej programu lub jego modułu wykonywane
przez translator (kompilator), a polegające na dokonaniu rozbioru gramatycznego
analizowanej jednostki tekstu w celu ustalenia jego struktury gramatycznej i
zgodności z gramatyką języka.
Analiza semantyczna jest, wykonywana po analizie syntaktycznej, a przed
generowaniem kodu, w której sprawdzana jest poprawność programu na poziomie
znaczenia poszczególnych instrukcji oraz programu jako całości. Analiza
semantyczna najczęściej operuje na drzewie składni, do którego dodaje
dodatkowe informacja, np. typy wartości.
W analizie semantycznej można wyróżnić trzy obszary działania:
• kontrola typów, czyli sprawdzanie poprawności typów w każdym węźle
drzewa składni programu (w tym także sprawdzanie, czy identyfikatory
zostały zadeklarowane) występuje ona tylko w językach z silnym
typowaniem,
• kontrola poprawności instrukcji, czyli sprawdzenie, czy instrukcje i
wyrażenia mają sens w kontekście, w którym zostały użyte,
• kontrola nazw, czyli sprawdzenie, czy nazwy jednoznacznie identyfikują
funkcje, etykiety i inne konstrukcje języka programowania.
Optymalizacja kodu wynikowego – proces, w którym dosłowna wersja kodu
źródłowego, zazwyczaj w postaci jakiegoś drzewa, jest przekształcana w postać
umożliwiającą sprawne wykonanie. Optymalizacja pozwala poprawić wydajność,
często jednak taki kod jest trudniejszy do debugowania, ponieważ utracona
zostaje pełna odpowiedniość pomiędzy kodem źródłowym a wykonywanym. Z tego
powodu istnieje możliwość wyłączenia optymalizacji w opcjach kompilatora
Generowanie kodu – ogół czynności dokonywanych podczas kompilacji, w
których na podstawie abstrakcyjnej reprezentacji kodu źródłowego (przeważnie
pewnego drzewa) generowany jest kod niskopoziomowy - asembler, kod
wykonywalny, lub rzadziej kod w języku pośrednim.
Download