Jezyki_skryptowe.pdf

(361 KB) Pobierz
112797371 UNPDF
Opis i zestawienie popularnych,
multiplatformowych,
skryptowych języków
programowania
K.Dzwinel, P.Figiel, W.Jakubowski
1/15
1. Spis rzeczy
1 Spis rzeczy
2 Wstęp
3 Opisy poszczególnych języków
3.1 Bash
3.1.1 Ogólnie
3.1.2 Historia
3.1.3 Składnia
3.1.4 Zastosowania
3.1.5 Przykład
3.1.6 Linki
3.2 JavaScript
3.2.1 Ogólnie
3.2.2 Historia
3.2.3 Zastosowania
3.2.4 Składnia
3.2.5 Przykład
3.2.6 Linki
3.3 Perl
3.3.1 Ogólnie
3.3.2 Historia
3.3.3 Zastosowania
3.3.4 Składnia
3.3.5 Przykład
3.3.6 Linki
3.4 PHP
3.4.1 Ogólnie
3.4.2 Historia
3.4.3 Zastosowania
3.4.4 Składnia
3.4.5 Przykład
3.4.6 Linki
3.5 Python
3.5.1 Ogólnie
3.5.2 Historia
3.5.3 Zastosowania
3.5.4 Składnia
3.5.5 Przykład
3.5.6 Linki
4 Zestawienie opisywanych języków
5 Indeks alfabetyczny
2/15
2. Wstęp
Tytułem wstępu chcielibyśmy zaznaczyć, że nie jesteśmy ekspertami w programowaniu w
jakimkolwiek z opisywanych przez nas języków. Co więcej nasza znajomość z Pythonem i Perlem
rozpoczęła się właśnie od prac nad tym artykułem. Tym niemniej w naszym tekście opieraliśmy się
jedynie na potwierdzonych danych z pewnych źródeł. Mamy nadzieję, że forma w jakiej
przedstawiamy zebrane przez nas wyniki będzie klarowna dla każdego czytelnika który posiada
przynajmniej podstawowe umiejętności programistyczne.
Zadaniem naszego artykułu nie jest nakłonienie czytelnika do korzystania z któregokolwiek z
opisywanych języków, nie jest też jego celem opisanie całej składni czy też wnikanie w szczegóły
semantyki języka. Nasza praca ma zaprezentować popularne, multiplatformowe języki programowania
i porównać je pod względem praktycznego zastosowania.
Układając koncept pracy postanowiliśmy podzielić opis każdego języka na kilka zagadnień. Pod
hasłem “Ogólnie” staraliśmy się zawrzeć jednolinijkowy, formalny opis właściwości języka. W
“Historii” czytelnik znajdzie podstawowe fakty dotyczące powstawania i rozwoju języka, jest to
przeważnie ściśle związane z jego zastosowaniem i popularnością. “Zastosowania” to próba
odpowiedzi na pytanie “Po co powstał dany język?”. Można tutaj znaleźć informacje na temat
sposobów wykorzystania języka i jego popularności w danej dziedzinie. W “Składni” staraliśmy się
przybliżyć budowę i podkreślić specyficzne własności języka na tym polu, często odwołujemy się tutaj
do porównań z ANSI C. “Przykład” jest prostym programem z dokładnym opisem linijka po linijce, w
ten sposób chcemy zaprezentować czytelnikowi “żywy” kod, który jest faktycznie wykorzystywany.
Na końcu każdego opisu w “Linkach” zainteresowany czytelnik może znaleźć odnośniki do miejsc z
których dowie się więcej na temat danego języka.
Podsumowaniem artykułu jest tabela z rozdziału 4 w której dokonaliśmy obiektywnego
zestawienia opisanych języków. W rozdziale 5 znajduje się praktyczny indeks alfabetyczny terminów i
nazw użytych w całym artykule.
życzymy miłej lektury,
Autorzy
3/15
3.1 Bash
3.1.1 OGÓLNIE
Język skryptowy powłoki Bash.
3.1.2 HISTORIA
Bash to najpopularniejsza powłoka systemowa, systemów uniksowych. Wywodzi się od starszej o 10
lat powłoki Bourne'a sh. Bash został napisany w 1987 roku przez Briana Foxa a od roku 1990
opiekuje się nim Chet Ramey . Bash jest udostępniany na licencji GPL .
3.1.3 ZASTOSOWANIA
Bash przede wszystkim został stworzony i jest wykorzystywany do efektywnego zarządzania
systemem. Pozwala on tworzyć np. administratorom skrypty zawierające ciągi poleceń, wykonanie
takiego skryptu oszczędza czas który byłby potrzebny do “ręcznego” wywołania każdego z poleceń. Co
więcej skrypt taki może być wywoływany co jakiś określony czas np. w celu dostosowania zegara
systemowego do czasu na serwerach np czy też w celu sprawdzenia poprawności dysku. Programy
napisane w bashu są również często wykonywane automatycznie w odpowiedzi na jakąś akcję np.
wywołanie zamknięcia systemu uruchomi skrypt zabijający managera okien.
Bash jest podstawową powłoką nie tylko w większości dystrybucji systemu Linux , ale również we
wszystkich systemach Mac OS X od wersji 10.3. Pod windowsem Bash jest dostępny poprzez program
Cygwin .
3.1.4 SKŁADNIA
Składnia Basha jest dosyć specyficzna ponieważ opiera się w większości na wykonywaniu poleceń
systemowych. W bashu bloki są wydzielane poprzez słowa kluczowe np. pętle zaczyna słowo do a
kończy słowo done. Końcem polecenia jest koniec linii, nie stosuje się średnika. Dostępne pętle to: for,
while, until i select. Na uwagę zasługuje tutaj funkcja select z którą nieczęsto spotykamy się w
językach programowania, pozwala ona w pętli wybierać kolejne elementy z podanej listy i wstawiać je
pod zmienną iteracji, co schematycznie wygląda tak:
select zmienna in lista
do
polecenie
done
Dostępne instrukcje warunkowe to if i case.W tym miejscu muszę napisać kilka słów o sprawdzaniu
warunków, jednak wcześniej słowo o zmiennych. Zmienne deklarujemy poprzez przypisanie x=10 albo
x='tekst' w dowolnym miejscu programu bez określania typu zmiennej, do zmiennych odwołujemy się
poprzez znak '$' np. echo $x. Chcąc sprawdzić np czy zmienna $a jest nie większa od $b musimy
zapisać [$a -le $b], nazwa polecenia oczywiście nie jest przypadkowa, pochodzi od 'less or equal',
jednak wymaga pamiętania. Plusem takiego sposobu sprawdzania warunku jest różnorodność opcji:
możemy sprawdzić za pomocą jednego polecenia czy plik o ścieżce określonej w zmiennej istnieje, czy
jest przeznaczony do zapisu, czy jest niezerowy itd.Bash nie jest przeznaczony do prowadzenia
obliczeń algebraicznych, działania odbywają się na liczbach całkowitych i nie jest prowadzona
kontrola przepełnienia. Tym niemniej da się coś policzyć:
wynik=$[4*5/2]
numer=$((numer+1))
4/15
W bashu możemy również analizować i przekierowywać informacje z wywoływanych programów np.
poprzez zapisywanie wyników ich działania do zmiennych (przykład) czy też przekierowania na np.
standardowe wyjście błędów (stderr).
3.1.5 PRZYKŁAD
1: #!/bin/bash
2: RED = '\e[1;31m'
3: GREEN = '\e[1;32m'
4: NORM = '\e[0m'
5: i =102;
6: while [ $i != 108 ]; do
7: echo -ne "Connection to the 192.168.1. ${i} \t\t"
8: CHECK =` ping -c 1 192.168.1. $i | grep 'bytes from' `
9: if [ " $CHECK " != "" ]; then
10: echo -e " ${GREEN} OK ${NORM} "
11: else
12: echo -e " ${RED} FAILED ${NORM} "
13: fi
14: i = $[i+1];
15: done
Ten skrypt napisałem, żeby mieć możliwość szybkiego sprawdzenia domowej sieci lokalnej. Pozwala
on określić nie tylko które komputery są podłączone (a więc kto jest w domu), ale również jakie
zostało im przydzielone IP.
I tak w linii 1 deklarujemy, że nasz skrypt jest skryptem bash. W liniach 2-4 tworzymy zmienne w
których zapisujemy interesujące nas kolory (czerwony, zielony i 'normalny' czyli biały) – dzięki temu
będziemy mogli wygodnie wypisać na konsolę kolorowy tekst. W linii 5 tworzymy zmienną 'i' która
będzie nam potrzebna do pętli. Zmiennej ' i ' przypisuję wartość 102 a w warunku pętli (linia 6 ) ustalam,
że ' i ' musi być różne od 108. W ten sposób uzyskam w pętli liczby z zakresu <102,108>. W linii 7 za
pomocą echo (z parametrami n – brak znaku następnej linii i e – możliwość kolorowania i używania
tabulatorów) wypisuję tekst “Connection to 192.168.1.” a następnie nasze ' i ' i dwa tabulatory.
W linii 8 jest wykonywany program ping który wysyła pakiet kontrolny pod zadany IP (zadeklarowany
“na sztywno” jego początek “192.168.1.”oraz nasze ' i' z <102,108>). Z wyniku są wybierane linie
zawierające ciąg 'bytes from' (zajmuje sie tym program grep ) a następnie zwracane są do nowej
zmiennej CHECK . Jeżeli CHECK jest pusty (linia 9 ) to znaczy, że nie otrzymano odpowiedzi spod
danego IP – wypisujemy więc czerwone FAILED . Jeżeli było by inaczej (linia 11 ) to wypisujemy
zielone OK . Następnie zwiększamy o 1 nasze ' i '(linia 14 ) i powtarzamy procedurę dla kolejnych
numerów IP.
3.1.6 Linki
Główna strona języka Bash
Kurs Basha po polsku
5/15
112797371.001.png 112797371.002.png 112797371.003.png
Zgłoś jeśli naruszono regulamin