]> gitweb.morketsmerke.org Git - mmdev.git/commitdiff
Zakończenie tworzenia rozdziału 14. Do przeredagowania.
authorxf0r3m <jakubstasinski@protonmaill.com>
Mon, 29 Apr 2024 09:21:49 +0000 (11:21 +0200)
committerxf0r3m <jakubstasinski@protonmaill.com>
Mon, 29 Apr 2024 09:21:49 +0000 (11:21 +0200)
articles/terminallog/Linux.Podstawy.html

index a2ecbde866edd8ddd448aa7ef0cdd59e6aea51ee..318e43240880e4ffe9c557754f11bce179cd9f37 100644 (file)
@@ -12156,6 +12156,152 @@ PROGS=boring trite
           Jeśli z tego pliku obiektowego korzysta więcej plików wykonywalnych
           niż ten jednen to trzeba je przenieść nad nie wszystkie.
         </p>
+        <h2 id="14.3.lexandyacc">14.3. Lex i Yacc</h2>
+        <p>
+          Programy odczytujące pliki konfiguracyjne lub polecenia korzystają
+          z takich narzędzi jak <strong>Lex</strong> oraz <strong>Yacc</strong>.
+          Także możemy spotkać się z nimi podczas budowania niektórych
+          projektów.
+        </p>
+        <ul>
+          <li>Program <em>Lex</em> jest <strong>analizatorem leksykalnym</strong>,
+          jego zadaniem jest przekształcenie tekstu w specjalne znaczniki
+          opisane etykietami. Dostępną w dystrybucjach Linuksa implementacja
+          programu <em>Lex</em> nosi nazwę <em>flex</em>. Korzystając tego
+          programu będziemy musieli użyć opcji konsolidatora takich jak:
+          <em>-ll</em> lub <em>-lfl</em>.</li>
+          <li>Program <em>Yacc</em> jest to <strong>analizator składniowy</strong>.
+          Jego zadaniem jest odczyt składni zgodnie z wcześniej ustaloną
+          <em>gramatyką</em>. W dystrybucjach Linuksa dostępna jest
+          <em>bison</em>, który może być kompatybilny z programem <em>yacc</em>
+          w momencie gdy użyjemy opcji <em>-y</em>, natomiast dla konsolidatora
+          będziemy musieli użyć opcji <em>-ly</em>.</li>
+        </ul>
+        <h2 id="14.4.scriptlanguages">14.4. Języki skryptowe</h2>
+        <p>
+          Kiedyś poza obsługą powłoki oraz programu <strong>awk</strong>
+          użytkownik nie musiał znać żadanych innych skryptowych języków
+          programowania, zmieniło się to wraz z rozpowszechnieniem się takich
+          języków jak <strong>Perl</strong> a w poźniejszych latach
+          <strong>Python</strong>. Niektóre z narzędzi systemowych zostały
+          przepisane z klasycznego C do np. Pytona - na przykład narzędziem
+          <em>whois</em>. Języki skryptowe obecnie przechylają szalę na swoją
+          korzyść względem języków kompilowanych, mimo to zalety takich języków
+          jak C oraz wpisanie się tego języka w rdzeń nauk komputerowych
+          nie sposowoduje zaprzestania jego używania nawet w ciągu kilku
+          następnych dziesięcioleci. Język ten jest językiem niskopoziomowym,
+          wymagającym abstrakcyjnego myślenia i dość trudnym w jego bardziej
+          zaawansowanym zastosowaniu, dlatego też większość młodszych
+          programistów skupia się na językach skryptowych, w których można
+          osiągnać podobne rezultaty mniejszym kosztem.
+        </p>
+        <p>
+          W większości przypadków skrypty rozpoczynają się od wskazania
+          interpretera poniższego skryptu. Takie wskaznie rozpoczyna się od
+          od znaków <em>#!</em> (każdy plik tekstowy rozpoczynający się tych
+          znaków uznawany jest za skrypt), po których bez przerwy występuje
+          ścieżka
+          wskazująca na właściwy program interpretera danego języka. Dla języka
+          Perl, wskazanie interpretera prezentuje się w następujący sposób:
+        </p>
+<pre class="code-block">
+#!/usr/bin/perl -w
+</pre>
+        <p>
+          Natomiast dla języka Python wygląda to następująco:
+        </p>
+<pre class="code-block">
+#!/usr/bin/env python
+</pre>
+        <p>
+          W systemie może być dostępnych kilka wersji Pythona. Za pomocą tego
+          rozdzaju wskazania wybieramy pierwszą wersję, która znajduje się
+          na ścieżce wyszukiwania poleceń. Inną metodą na wskazanie
+          interpretera Pythona jest: <em>#!/usr/bin/python3</em>, wskazująca
+          konkretnie na jedną z 3 wersji Pythona, obecnie 3.12.
+        </p>
+        <p>
+          Opiszemy sobie teraz kilka ważniejszych języków skryptowych.
+        </p>
+        <ul>
+          <li><strong>Python</strong> - Python zapewnia nam bogaty zestaw
+          funkcji pozwalających rozwiązać każdy problem związany np. z
+          przetwarzeniem tesktu, obsługą baz danych czy sieci. Dostarcza on
+          interaktywną powłokę, w które możemy linia po lini testować nasze
+          rozwiązania. Język ten posiada on dość dobry model obiektowy.
+          Jego zakres zastosowań jest obecnie bardzo szeroki, podobny do języka
+          C, może poza programowaniem układowym oraz architekturą jąder
+          systemowych czy sterowników urządzeń. Jest on prosty do nauki o ile
+          nie posiada się naleciałości z innych języków takich jak np. C.</li>
+          <li><strong>Perl</strong> - język skrytowy stworzony dla systemów
+          Uniksowych. Język ten ma ogromne możliwości porównywalne z Pythonem,
+          jednak nie jest on taki prosty w użyciu. Jego głównym zadaniem jest
+          obróbka tekstu. Obecnie wiele narzędzi wykorzystuje jego możliwości
+          np. znany wszyskim system kontroli wersji - <em>Git</em>.</li>
+          <li><strong>PHP</strong> - jest językiem służacym do dynamicznego
+          tworzenie treści na stronach internetowych. Można wykorzystać go
+          do generowania stron hipertekstowych oraz do modyfikacji
+          baz danych SQL.</li>
+        </ul>
+        <p>
+          Innym wartym wspomnienia językiem jest <strong>m4</strong>
+          odpowiedzialny z przetwarzanie makr. Dostępny jest on w systemie
+          GNU <em>autotools</em>.
+        </p>
+        <h2 id="14.5.java">14.5. Język Java</h2>
+        <p>
+          Java podobnie do języka C jest językiem kompilowanym. Zapewnia on
+          prostszą składnie oraz duże możliwości progrowamowania obiektowego.
+          Dawniej służył on jako środowisko dla aplikacji internetowych, jednak
+          obecnie zmieniło się na rzecz interpretowanego przez przeglądarki
+          JavaScriptu. Nie mniej jednak możemy spotkać się z aplikacją Javy na
+          na dystrybucjach Linuksa lub z potrzebą uruchomienia takowej. Dlatego
+          też warto się zapoznać, chociaż w podstawowym stopniu z zapoznać się
+          z obsługą projektów w tworzonych w tym języku.
+        </p>
+        <p>
+          Java może być kompilowana w dwojaki sposób. Kompilator może
+          przekształcić kod źródłowy do kodu maszynowego zgodnego z naszym
+          systemem (tak samo, jak w przypadku języka C) lub może przetworzyć
+          kod źródłowy na tzw. <strong>kod bajtowy</strong> interpretowany
+          poźniej przez <em>wirtualną maszynę</em> Javy (interpreter). W
+          Uniksach najczęściej będziemy się spotykać z kodem bajtowym - pliki
+          z rozszerzeniem <em>.class</em>.
+          Wszystkie niezbędne uruchomienia narzędzia znajdują się w pakiecie
+          zwanym środowiskiem uruchomieniowym Javy (<em>JRE</em>). Jeśli mamy
+          go zainstalowanego w systemie to do uruchomienia wystarczy wydać
+          poniższe polecenie:
+        </p>
+<pre class="code-block">
+$ java file.class
+</pre>
+        <p>
+          Kod bajtowy może również występować w postaci skompresowanej,
+          wówczas będziemy mieć doczynienia z plikami z rozszerzeniem 
+          <em>.jar</em>. Je również możemy uruchomić w podobny sposób jak
+          zwykły kod bajtowy wystarczy użyć opcji <em>-jar</em>, tak jak
+          pokazano to na poniższym przykładzie.
+        </p>
+<pre class="code-block">
+$ java -jar file.jar
+</pre>
+        <p>
+          Czasami do wykorzystania programów Java będzie potrzebne zdefiniowanie
+          dwóch zmiennych <strong>JAVA_HOME</strong> zawierającej ścieżkę do
+          katalogu z instalacją JRE. Drugą zmienną jest <strong>CLASSPATH</strong>,
+          zmienna ta zawiera nazwy katalogów przechowywujących pliki kodu
+          bajtowego, których dany program może wymagać.
+        </p>
+        <p>
+          Jesli zajdzie taka potrzeba, aby skompilować kod Javy to w zestaw
+          narzędzi programistycznych JDK wchodzi w skład kompilator
+          <strong>javac</strong>. Uruchmiamy go podobnie do interpretera.
+          W skład JDK wchodzi również polecenie <em>jar</em>, które może
+          kompresować kod bajtowy Javy.
+        </p>
+<pre class="code-block">
+$ javac file.java
+</pre>
       </div>
                        <p style="margin: 15px; padding: 0; outline: 0;">
                                2024; COPYLEFT; ALL RIGHTS REVERSED;