• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Ada - informatyka



    Podstrony: [1] [2] 3
    Przeczytaj także...
    Programista, zwany też potocznie koderem to osoba, która tworzy programy komputerowe w pewnym języku programowania. Termin ten może odnosić się także do specjalisty w jednej dziedzinie programowania. Większość programistów zna co najmniej kilka języków programowania (np. C, C++, Java), lecz specjalizuje się tylko w wybranych z nich. Nazwa głównego języka jest często dodawana do nazwy stanowiska, np. programista C++, aby podkreślić specjalizację.Selekcja w programowaniu, czyli odniesienie do składowej – zawarta w kodzie źródłowym operacja odniesienia (odwołania, selekcji, wyboru) do pewnej składowej struktury danych. Takie odwołanie umożliwia:
    Przykłady[ | edytuj kod]

    Oto prosty przykład (funkcja Ackermanna) kodu w Adzie demonstrujący kilka jej cech. Program, żeby się skompilować, musi być umieszczony w pliku „ackermann.adb” (wielkość liter bez znaczenia).

    with Ada.Command_Line; use Ada.Command_Line;
    with Gnat.Io; use Gnat.Io;
    
    procedure Ackermann is
    
    function Ack (x, y : in Integer) return Integer
    is
    begin
      if (x = 0) then
        return y + 1;
      elsif (y = 0) then
        return Ack (x - 1,1);
      else
        return Ack (x - 1, Ack (x, y - 1));
      end if;
    end Ack;
    
    x,y,a : Integer;
    begin
      if (Argument_Count = 2) then
        x := Integer'Value (Argument (1));
        y := Integer'Value (Argument (2));
      elsif (Argument_Count = 1) then
        x := 3;
        y := Integer'Value (Argument (1));
      else
        x := 3;
        y := 3;
      end if;
      a := Ack (x, y);
      Put ("Ack (");
      Put (x);
      Put (",");
      Put (y);
      Put (") = ");
      Put (a);
      New_Line;
    end Ackermann;
    

    Można zauważyć, że:

    Pole znacznikowe, pole wyróżnikowe, flaga, pole rozróżniające – specjalny rodzaj pola dostępny w rekordach z wariantami, które określa aktualną postać rekordu, tzn. który wariant z dostępnego wykazu wariantów zawartych w definicji rekordu, ma przypisaną wartość aktualną.Międzynarodowa Organizacja Normalizacyjna, ISO (ang. International Organization for Standardization, fr. Organisation internationale de normalisation) – organizacja pozarządowa zrzeszająca krajowe organizacje normalizacyjne.
  • Wszystkie nazwy są nieczułe na wielkość znaków.
  • Cały program to jedna wielka procedura, która może zawierać podprocedury (w tym wypadku funkcję ack).
  • Wszystkie zamknięcia są zapisywane za pomocą end co_zamykamy. Pozwala to uniknąć przypadkowych pomyłek, ale w opinii wielu programistów jest nadmiarowe.
  • Przypisanie jest zapisywane " := ", natomiast porównanie przez " = ". Argumentuje się to tym, że w C występują pomyłki polegające na zapisie " = " zamiast właściwego " == ".
  • Nie ma odpowiednika funkcji printf, uważanej za niebezpieczną. Chociaż funkcje " Put " i " New_Line " (z modułu " Gnat.Io ") są bezpieczniejsze, są bardzo niewygodne w użyciu.
  • " elseif " pisze się łącznie nie zaś oddzielnie jak w C. Jest to pewne usprawnienie, używane przez większość nowych języków.
  • Składnie atrybutów to obiekt'atrybut (lub klasa'atrybut), zamiast bardziej tradycyjnych selekcji " . " czy " :: ".
  • Rzutowania są przeprowadzane składnią Klasa'Value(wartość). Jest to znaczne ulepszenie wobec C++, gdzie (klasa)wartość prowadzi do niepewnej kolejności wykonywania działań i zwykle w większych wyrażeniach jest zapisywane jako ((klasa)(wartość)).
  • Występuje rozróżnienie „procedur” (w nomenklaturze C: funkcje niezwracające wartości) i „funkcji” (w nomenklaturze C: funkcje zwracające wartość). Większość współczesnych języków nie zawiera tego rozróżnienia.
  • Wartościowanie leniwe[ | edytuj kod]

    Operatorami short circuit nazywamy takie, które nie są obliczane jeśli nie jest to konieczne. Inną nazwą tego rodzaju jest wartościowanie leniwe.

    COBOL (ang. COmmon Business Oriented Language) – język programowania stworzony z głównym przeznaczeniem do prac programistycznych w dziedzinach ekonomii i biznesu.Separator (programowanie) – rodzaj ogranicznika zdefiniowanego w składni określonego języka programowania i stanowiącego element kodu źródłowego rozdzielający w ciągu znaków kodu źródłowego poszczególne jednostki leksykalne.

    W Adzie występują następujące konstrukcje:

  • A or B
  • Obliczane jest A
  • Jeśli A jest prawdziwe, obliczane jest B. Niezależnie od wyniku B, wynik wyrażenia to „prawda”.
  • Jeśli A jest fałszywe, obliczane jest B. Jeśli B jest prawdziwe, wynik to „prawda”, w przeciwnym razie „fałsz”.
  • A or else B
  • Obliczane jest A
  • Jeśli A jest prawdziwe, wynik to „prawda”, a B nie jest obliczane.
  • Jeśli A jest fałszywe, obliczane jest B. Jeśli B jest prawdziwe, wynik to „prawda”, w przeciwnym razie „fałsz”.
  • A and B
  • Obliczane jest A
  • Jeśli A jest prawdziwe, obliczane jest B. Jeśli B jest też prawdziwe, wynik to „prawda”, w przeciwnym razie fałsz.
  • Jeśli A jest fałszywe, obliczane jest B, ale niezależnie od wyniku B, wynik wyrażenia to fałsz.
  • A and then B
  • Obliczane jest A
  • Jeśli A jest prawdziwe, obliczane jest B. Jeśli B jest też prawdziwe, wynik to „prawda”, w przeciwnym razie „fałsz”.
  • Jeśli A jest fałszywe, wynik to „fałsz”, a B nie jest obliczane.
  • Przykład („short_circuit.adb”):

    Plik (ang. file) – uporządkowany zbiór danych o skończonej długości, posiadający szereg atrybutów i stanowiący dla użytkownika systemu operacyjnego całość. Nazwa pliku nie jest częścią tego pliku, lecz jest przechowywana w systemie plików.W językach programowania system typów może być zdefiniowany jako system klasyfikacji wyrażeń w zależności od rodzajów wartości, jakie one generują. Każdej obliczonej wartości przypisywany jest pewien typ, który jednoznacznie definiuje, jakie operacje można na niej wykonać. Śledząc przepływ wartości, system typów stara się udowodnić, że w programie występuje poprawne typowanie, tzn. nie dochodzi do sytuacji, w której na wartości określonego typu próbujemy wykonać niedozwoloną operację.
    with Text_IO, Ada.Integer_Text_IO;
    use Text_IO, Ada.Integer_Text_IO;
    
    procedure Short_Circuit is
    
    function Is_Odd (i : Integer) return Boolean
    is
    begin
      Put ("Testing");
      Put (i);
      New_Line;
      return ((i / 2) * 2) /= i;
    end;
    
    begin
      Put_Line ("Testing if ""5 and 6"" are odd");
      if (Is_Odd (5) and Is_Odd (6)) then
        Put_Line ("True");
      else
        Put_Line ("False");
      end if;
    
      Put_Line ("Testing if ""5 or 6"" are odd");
      if (Is_Odd (5) or Is_Odd (6)) then
        Put_Line ("True");
      else
        Put_Line ("False");
      end if;
    
      Put_Line ("Testing if ""5 and then 6"" are odd");
      if (Is_Odd (5) and then Is_Odd (6)) then
        Put_Line ("True");
      else
        Put_Line ("False");
      end if;
    
      Put_Line ("Testing if ""5 or else 6"" are odd");
      if (Is_Odd (5) or else Is_Odd (6)) then
        Put_Line ("True");
      else
        Put_Line ("False");
      end if;
    
      Put_Line ("Testing if ""6 and 5"" are odd");
      if (Is_Odd (6) and Is_Odd (5)) then
        Put_Line ("True");
      else
        Put_Line ("False");
      end if;
    
      Put_Line ("Testing if ""6 or 5"" are odd");
      if (Is_Odd (6) or Is_Odd (5)) then
        Put_Line ("True");
      else
        Put_Line ("False");
      end if;
    
      Put_Line ("Testing if ""6 and then 5"" are odd");
      if (Is_Odd (6) and then Is_Odd (5)) then
        Put_Line ("True");
      else
        Put_Line ("False");
      end if;
    
      Put_Line ("Testing if ""6 or else 5"" are odd");
      if (Is_Odd (6) or else Is_Odd (5)) then
        Put_Line ("True");
      else
       Put_Line ("False");
      end if;
    end Short_Circuit;
    

    W przykładzie widać też użycie podwójnego znaku "" dla zaznaczenia " w łańcuchu. Umożliwia to obycie się bez skomplikowanych i podatnych na błędy zasad escape'owania znaków. W C taka składnia byłaby niemożliwa ponieważ C pozwala napisać "łańcuch 1" "łańcuch 2" (z rozdzielającymi spacjami lub bez), co oznacza to samo co "łańcuch 1łańcuch 2" i jest przydatne w preprocessingu.

    Stany Zjednoczone, Stany Zjednoczone Ameryki (ang. United States, US, United States of America, USA) – federacyjne państwo w Ameryce Północnej graniczące z Kanadą od północy, Meksykiem od południa, Oceanem Spokojnym od zachodu, Oceanem Arktycznym od północnego zachodu i Oceanem Atlantyckim od wschodu.Podprogram (inaczej funkcja lub procedura) - termin związany z programowaniem proceduralnym. Podprogram to wydzielona część programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościć program główny i zwiększyć czytelność kodu.

    Oto przykład programu wyświetlającego zawartość plików na ekran. Jako argumenty podawane z linii poleceń program przyjmuje nazwy plików. W razie podania błędnej wzniesie flagę błędu.

    with Ada.Text_Io;
    use Ada.Text_Io;
    with Ada.Integer_Text_Io;
    use Ada.Integer_Text_Io;
    with Ada.Command_Line;
    use Ada.Command_Line;
    with Ada.Strings.Unbounded;
    use Ada.Strings.Unbounded;
    
    procedure Cat is
    
       Plik             : File_Type;
       Litera           : Character;
       LiczbaArgumentow : Natural;
       Nazwa            : Unbounded_String;
    
    begin
    
       if (Argument_Count /= 0) then
    
          LiczbaArgumentow := Argument_Count;
          Put ("Podales do programu: ");
          Put (Command_Name);
          Put (" argumenty");
          New_Line;
    
          for ThisArgument in 1 .. LiczbaArgumentow loop
    
             Put ( "Numer argumentu: ");
             Put (ThisArgument);
             Put (" jest nim: ");
             Put (Argument(ThisArgument));
             New_Line;
    
          end loop;
    
          for ThisArgument in 1 .. LiczbaArgumentow loop
    
             Nazwa := To_Unbounded_String (Argument (ThisArgument));
             Open (Plik, In_File, To_String (Nazwa));
             New_Line;
             Put ("Nastepny plik o nazwie: ");
             Put (Argument (ThisArgument));
             New_Line (2);
    
             loop
                exit when End_Of_File (Plik);
    
                Get (Plik, Litera);
                Put (Litera);
                if End_Of_Line (Plik) then
                   New_Line;
                end if;
    
             end loop;
    
             Close (Plik);
          end loop;
    
       else
    
          Put ("Nie podales argumentow");
    
       end if;
    
    end Cat;
    

    Program korzysta z biblioteki Ada.Command_Line, która służy do obsługi linii poleceń.

    Monitor ekranowy – urządzenie zaopatrzone w ekran będący źródłem światła, przetwarzające sygnały odbierane z urządzeń technicznych na obraz wyświetlany na własnym ekranie w trybie alfanumerycznym lub graficznym i oglądany z drugiej strony przez oglądającego.Literał łańcuchowy, nazywany także napisem lub stała łańcuchową, to literał reprezentujący w kodzie źródłowym wartość składającą się z ciągu znaków (łańcuch znaków).

    Przypisy[ | edytuj kod]

    Funkcja Ackermanna jest funkcją matematyczną odkrytą przez Wilhelma Ackermanna w 1928 roku. Cechą charakterystyczną tej dwuargumentowej funkcji jest jej nadzwyczaj szybki wzrost. Funkcja Ackermanna jest prostym przykładem funkcji rekurencyjnej, niebędącej funkcją pierwotnie rekurencyjną. Funkcje pierwotnie rekurencyjne to większość znanych funkcji, między innymi dodawanie, funkcja wykładnicza itp.Fortran (od wersji 90 do aktualnej) a dawniej FORTRAN (do wersji 77 włącznie) (od ang. FORmula TRANslator) – język programowania pierwotnie zaprojektowany do zapisu programów obliczeniowych, był niegdyś językiem proceduralnym, obecnie jest nadal rozwijanym językiem ogólnego przeznaczenia. Umożliwia programowanie strukturalne, obiektowe (Fortran 90/95), modularne i równoległe (Fortran 2008). Jego zastosowaniami są, między innymi, obliczenia naukowo-inżynierskie, numeryczne, symulacja komputerowa itp.


    Podstrony: [1] [2] 3



    w oparciu o Wikipedię (licencja GFDL, CC-BY-SA 3.0, autorzy, historia, edycja)

    Warto wiedzieć że... beta

    Litera – znak graficzny charakterystyczny dla pism fonetycznych. Może wyrażać pojedynczą głoskę, sylabę lub wchodzić w skład innych połączeń - np. dwuznaków. W języku francuskim zestaw nawet pięciu liter może oznaczać jedną głoskę.
    Nationalencyklopedin – największa, szwedzka encyklopedia współczesna. Jej stworzenie było możliwe dzięki kredytowi w wysokości 17 mln koron, którego udzielił rząd szwedzki w 1980 roku i który został spłacony w 1990. Drukowana wersja składa się z 20 tomów i zawiera 172 tys. haseł. Wersja internetowa zawiera 260 tys. haseł (stan z czerwca 2005). Inicjatorem projektu był rząd szwedzki, który rozpoczął negocjacje z różnymi wydawcami. Negocjacje zakończyły się w 1985, kiedy na wydawcę został wybrany Bra Böcker z Höganäs. Encyklopedia miała uwzględniać kwestie genderowe i związane z ochroną środowiska. Pierwszy tom ukazał się w 1989 roku, ostatni w 1996. Dodatkowo w roku 2000 ukazały się trzy dodatkowe tomy. Encyklopedię zamówiło 54 tys. osób. W 1997 roku ukazało się wydanie elektroniczne na CD, a w 2000 pojawiło się wydanie internetowe, które jest uzupełniane na bieżąco.
    Nazwy własne, imiona własne (łac. nomina propria) – nazwy przysługujące jednostkom, w odróżnieniu od nazw pospolitych, które odnoszą się do dowolnych klas jednostek (egzemplarzy określonej klasy przedmiotów).
    Nagroda Turinga — nagroda przyznawana corocznie za wybitne osiągnięcia w dziedzinie informatyki przez Association for Computing Machinery.
    Język strukturalny (ang. structured language) – język programowania, który pozwala tworzyć programy w postaci jednolitych bloków bez korzystania z instrukcji skoku oraz numerowania linii (choć czasami można się z tym spotkać).
    Atrybut – element składni języka programowania, który określa konkretną właściwość (znaczenie), nadaną wybranemu elementowi (obiektowi).
    Preprocesor – w programowaniu – to program komputerowy, którego zadaniem jest przetworzenie kodu źródłowego, w sposób określony przez programistę za pomocą dyrektyw preprocesora, na kod wyjściowy – tak przetworzony kod źródłowy poddawany jest następnie analizie składniowej i kompilacji.

    Reklama

    Czas generowania strony: 1.05 sek.