???-?????????? ? 21 ???? - PowerPoint PPT Presentation

1 / 44
About This Presentation
Title:

???-?????????? ? 21 ????

Description:

- 21 , ( : , ... – PowerPoint PPT presentation

Number of Views:90
Avg rating:3.0/5.0
Slides: 45
Provided by: Sergey52
Category:
Tags: openvms

less

Transcript and Presenter's Notes

Title: ???-?????????? ? 21 ????


1
  • ???-?????????? ? 21 ???? ?? ???, ? ??????????
  • (???? ??? ??????????, ??????????,
    ??????????????, ??????????? ??? ?????????? ??????
    ).
  • ?????? ????? rybin_at_adacore.com
  • ??????, 28 ??????? 2010 ?.

2
??? ???? ??????? ????????? ???????? ????
??????????? ??????? ??????????
????????????,????????????-????????????
??? (???????????)??????????? ?
?????????????-????????? ? ??????? ???
??? (???????????)??????????? ?
?????????????-??????????? ? ????? ???
??-????????????? ??????? ? ???-?????????????
???????????????
3
? ??? ? ????????, ????? ??? ????????????
  • ? ????? ????????, ???
  • ??????????? ?????????? ????????
  • ???????? (??????? ? ???????????)
  • ???????? ????? ? ????????????????
  • ??????????
  • ?????????? ???????
  • ??????????? ???????
  • ??????? ??????? (?????????, ???????? ?
    ???????????????? ???????????)
  • ??????????? ??????????
  • ???????????
  • ?????????
  • ???????????
  • ?????? ??????????, ???
  • Alenia
  • Alstom Transport
  • Ansaldo STS
  • BAE Systems
  • Boeing
  • EADS
  • European Space Agency
  • Eurocontrol
  • IPESOFT
  • JEOL
  • Lockheed Martin
  • MBDA
  • Philips Semiconductor
  • Raytheon
  • Rockwell Collins
  • SAAB
  • General Electric
  • Thales

4
??? ????, ??????????????? ?? ???????? ?????????
????.
  • ??????????? ?????????????? ????? ??????????? ??
    ??????????????? ????????????, ?????????? ? ???,
    ??? ?????? ??? ??????????? ???????????????.
  • ??? ???????????? ?? ??????????? ??????????????
    ??????, ?????????? ????????? ??? ???????????
    ?????????? ??????? ??????????? ?????? ??? ???
    ?? ??????????, ??? ? ??? ?????????????.
  • ??? ????????????? ???????????, ????????????? ?
    ??????-??????????? (?/?, Java)
  • ??????????????? ???????? ?????????? ?
    ??????????????? ??????????? ??? ????????????????
    ??????????? ?????????

5
Hello, World!
  • ???? ??? ?????????? ? ????? 80-? ????? ?? ??????
    ?? ??? ??? ?????? ???? ??? ?????????? ??????????
    ??????????? ??????
  • ???????? ANSI (1983), ???????? ISO/IEC 8652
    (1987/1995/2007/2012)
  • ??? ?????? ??????? ???????
  • with Ada.Text_IO use Ada.Text_IO
  • procedure Hello_World is
  • begin
  • Put_Line (Hello, World!)
  • -- ??? ???????????
  • end Hello_World

6
???? ???????????????? ? ?????????? - ?????????
(1).
  • ???????? ????????? (??????????? ??????) ??
    ????????? ????, ? ??????????? ? ?????????????
    ??????? ? ??????????, ??????????????? ???????? ?
    ????????? ? ???????? ?????? ??? ??????????
    ???????.
  • ??????? ? ???????????? ??????? ?????????? ??????
    ??????????????? ?????? ? ???????????? ????????
    ????? (??????? ???????)
  • ??????? ? ??????? ??????? ??? ????? ?????????????
    ??????????????? ????????????
  • ??????? ???????? ???????? ?????????-??????????????
    ? ??????????
  • ??????? ?????????????????? ?? ?????? ?????????
    ????? ??????????? ??????

7
???? ???????????????? ? ?????????? - ?????????
(2).
  • ???, ??? ?? ????????? ?????????! ????
    ????????? ??????? ?????????? ???????????????
    (??????????? ??????? ?????????? ??? ?? ????????)
    ? ???????? (????????????? ?????????? ?
    ???????????? ? ????????????? ??? ??? ??????????)
  • ??? ?????? ??????????? ?????? (??????????????
    ????????????? ?????????? ???????????? ??? ???
    ?????????), ??? ?????, ??????? ? ???????
    ??????????? ?? ??????????
  • --------------------------------------------------
    -------------
  • ??????? ?.? - ????? ????????????????.
    ????????? ? ???????? ?.????? ? ?????, 1993

8
???? ???????????????? ? ?????????? - ?????????
(3).
  • ??????????? ? ???????? ????? ?????????????? ?
    ???????????? ?????? ????, ? ?? ????????? ??????
  • ??????? ? ??????? ??????????????????? ????
    ??????????? ?????? ??????????? ?????? ???
    ????????!
  • ??????? ?????????? ????? ?????? ????????
  • ???????????? ?????? ????????????, ??? ??, ???
    ??????????? ??????????? ????? ??????? ?????? ???
    ???????? ? ?????????
  • ???, ??? ????? ???? ?????????? ?????? ???? ????
    ??????????!
  • ????????? ? ??????? ?? ??????? ????? - ???? ??
    ???????? ?????????? ????????????? ? ??????!
  • ??????????? ??? ????????. ?? ????????? ?
    ??/??, ????????
  • ??????? ????????? ?? ??????? ???????????
    ??????????? ??????? ???????????? ????, ? ??????
    ????????? ??????????????? ????????????? ?????
  • ??????? ??????????? ? ?????????? ?????????? ??
    ??????? ??????????? ???????????? ??????? ????,
    ? ????? ????????? ??????????????? ?????????????
    ?????

9
???? ???????????????? ? ?????????? - ?????????
(4).
  • ??????????? ??????????????
  • ??? ???????? ? ??????????? ??? ???????? ?????
    ????????????????
  • ???????? ???????? ????????? ??? ???? ???????????
    ? ??????? ???????? ??????? ????????? ????? ???
    ?????????????? ?????????? ??? ?????????? ?????
    ????????????? ??? ??? ???? ?????? ?????????,
    ????????? ??? ? ????????? ?? ???? ? ???
  • ????????????? ?????? ? ????????? ?? ??????
    ????????? ?????. ???????? ????? ???????????? ???
    ???????????? ? ??? ?????????? ?? ?????????
    ??????
  • ??????????? ?? ?????????? ????????? ??????
    (????????? ?????????? ????????, ??? ?????????? ??
    ???????? ????????, ? ?? ?????????? ?? ?????
    ?????? ????????? ???)
  • ??????????? ??? ?????? ????????? ?? ???????
    ???????????????? ??????? (????????? ??????????
    ????????, ??? ??????????? ???? ?????? ?? ?????)
  • ??????????? ??? ?????????? ????????? (?????????
    ?????????? ???????? ? ???????????
    ????????????????? ??????????)
  • ???????, ????????? ??????? ?????????? ?????????
    ?? ???????.
  • ???????? ???????? ????????? ?????????, ???
    ????????? ?????????? ????????????? ????
    ?????????????!

10
???? ???????????????? ? ?????????? ????????. ?
?????? ?????? ?????????? (1)
  • ????????? ????????? ? ?? ????????

?? - ?????????? ??? if (the_signal clear)
open_gates (...) start_train (...) ?? ????
?????????? ? , ??????? ?????????
?????????? ??? if (the_signal clear)
open_gates (...) start_train (...)
? ??? ????? ?????????? if The_Signal Clear
then Open_Gates (...) Start_Train (...) end
if ? ??? ???????????? ??????? ?? ?????
????????? ?????? ???????????, ?????????? ????????
? ???? ?????????? ?? ?????????? . ? ???
????????? ????? ???????? ?? ?????????.
11
???? ???????????????? ? ?????????? ????????. ?
?????? ?????? ?????????? (2)
  • ????????? ????????? ? ?? ????????

?? - ?????????? ??? if (the_signal clear)
open_gates (...) start_train (...) ????
???????? ????????? ?????? ????? ? ???????,
??????? ????????? ?????????? ??? if (the_signal
clear) open_gates (...) start_train
(...)
? ??? ????? ?????????? if The_Signal Clear
then Open_Gates (...) Start_Train
(...) end if ? ??? ?? ?????? ??????? ??????
??????????, ??????? ????? ?????????? ????? .
?????? ??? ????? ????????? ??? ?????????????
????????????
12
???? ???????????????? ? ?????????? ????????. ?
?????? ?????? ?????????? (3)
  • ???????? ??????

procedure P1 is ... procedure P2 is
... begin ... end P2 begin ...
Bl1 begin ... Bl2 begin
... end Bl2 ... end Bl1 end P1
record I Integer end record ... if
Condition then for I in 1 .. 10 loop
case Value is ... end case
end loop end if
13
???? ???????????????? ? ?????????? ????????.
??????? ????????? ? ??? (1).
  • ??????????????? ? ???????? ??????? ?????????
    ????????? - ???????? ???????? ???????????
    ??????????
  • ?????? ???????????? ? ????????? ???????? ??????
    ???? ?????????
  • ?????????? ????????? ?????????? ????????
    ????????
  • ?????? ???????? ????? ?????????????? ?????? ?
    ???????????? ? ?? ??????????, ????????? ?
    ??????????
  • ??????? ??????? ?????????????? ??? ?????????
    ??????? ???????? ???????????
  • ???, ??? ?? ????????? (??????????? ????????),
    ????????? (??? ????????????? ????????)
  • ??? ????? ??? ?????? ? ????? ?????????????????
  • ????????? ???????? ????? ?????????? ????????
  • ??? ???-????
  • ????????? ?????????????? ???? ???????? ?????? ?
    ?????????? ????????
  • ???? ?????? ? ?????????? ???????? - ?????????
    ???
  • ?????????? ????????? ??????????, ???? ?????????
    ??????????? ????? ? ???????? ???????? ??????
    ?????????? ???????
  • ??? ??????? ??????? ?????? ????? ?????????? ???
    ???? ? (??????) ?????????? ??????? ?
    ?????????????????, ??? ?????? ?????? ????????????
    ?????? ? ????? ????
  • ????????? ??????? ????????? ??? ??????
    ?????????????? ???? ???????? ?????? ? ??????
    ?????????? ???????

14
???? ???????????????? ? ??????????
????????.??????? ????????? ? ??? (2)
  • ??? ???? ?????? ???? ?????????? (?????????) ?
    ?????????, ??? ??? ????? ????? ? ???????????
  • ??? ??????? ?????? (? ??? ?? ??????????) ?????
    ????? ???? ???. ???? ??? ???????? ??? ??????????
    ???????. ???? ??? ?????? ???? ????? ?????
    ???????? ????? ????? ???????????? ???? ??????
  • ??? ???????? ????????? ? ?????? ?????????, ???
    ??? ????? ???? ???????????? ???? ?????????? ?
    ?????????? (???? ?? ????) ??? ???? ????? ??????
    ???? ?????? ????? ???????? ???? ????? ???????????
    ????? ??????.
  • ??? ?????? ????? ???????? (???????????? ????
    ????????? ?????????!) ???????????, ??? ????
    ????????? ????????????? ?????????? ?????
    ?????????? ????????
  • ???????????? ????? ???? ?? ???????????? ????????
    ????????, ? ?????????? ???? (??????????) ?????
  • ??? ???? ?????? ???????????? ?????????? (???
    ????? ?? ??????? ? ????? ?? ????????????
    ????????????? ???????????? ??? ?????
    ????????-???????????????? ????????????????)
  • ??????? ?????????????? ????? ???????????.

15
???? ???????????????? ? ??????????
????????.??????? ????????? ? ??? ????????????
??????
  • type ?????? is new Integer -- ??? ? ???? ??
    ??????????, ???
  • -- Integer, ??
    ??????!!!
  • type ?????? is new ??????
  • type ????????? is new ??????
  • ...
  • ?1, ?2 ??????
  • ?1, ?2 ?????????
  • ? ??????
  • ...
  • ?1 5 -- ?????
  • ?1 ?1 ?2 -- ?????
  • ?1 ?1 ?2 -- ?????? - ??? ?????? !
  • ? ?1 -- ?????? - ?????? ???? ?????????
    ? ?????????? !
  • if ?1 ?2 gt ? then -- ? ??? ???????????! ???
    ?????? gt
  • end if
  • -- ? ??? ??? ?????! ????? ???????? ?? ??, ???
    ?????? (????????)

16
???? ???????????????? ? ??????????
????????.??????? ????????? ? ???(???? ??????,
?? ????? ???????, ?? ?????! ((?)))
  • ????? ?????????????? ???? ????????????? ???????
    ?????? ? ?????? (???????????) ????
  • ?????? ????????? ????????????? ??????????????
    ???? ????? ??????, ?????? ?? ???????? ???? ?
    ????? ???????? ?????????
  • ??? ????? ???????, ?? ??? ????? ????????
    ?????????? ????????? ??? ????? ??????
  • generictype Source(ltgt) is limited privatetype T
    arget(ltgt) is limited private
  • function Ada.Unchecked_Conversion(S  Source) retu
    rn Target
  • ? ????????? ????????? ????????? ? ??????
    ???????? (?? ????, ??????? ????? ????????, ??
    ???????, ??????????).

17
???? ???????????????? ? ?????????? ????????.
??????? ? ?????????????? ????????.
  • procedure ????????? is
  • type ???????? is digits 8 range 0.0 .. 500.0
  • function ??????_?????????? return ???????? is
  • ...
  • end ??????_??????????
  • subtype ??????????_???????? is ???????? range
    0.0 .. 200.0
  • ???????_???????? ??????????_????????
  • ...
  • begin
  • ...
  • loop
  • ???????_???????? ??????_??????????
  • ...
  • end loop
  • ...
  • exception
  • when Constraint_Error gt
  • ????????_?????????_??????
  • ??????_??_??????
  • ??? ?????? ???
  • ????????????? - ?????????????? ???? ????????
    ?????? ? ?????????
  • ?????????? ????????? ???????? ????????????
    ????????
  • ?????? ??? ??????????? ????????? ???????? ?
    ?????? ??? ?? ?????????????? ????
  • ?????????? ???? ?????????, ??? ?????????????
    ???????? ???????? ? ??????, ???????????? ???
    ??????? ??????? ?????? (??????????? ???????)
  • ? ?????? ????????? ??????????? ??????????? ???
    ?????????? ????????? ????????????
    ???????????????? ??????????? Constraint_Error

18
???? ???????????????? ? ?????????? ????????.
???????? ??????
  • ??? ????????? ???????????? ?????? ???? ????
    ??????????
  • type Week_Day is
  • (Mon, Tue, Wen, Thu, Fri,
  • Sat, Sun)
  • Day Week_Day
  • ...
  • case Day is
  • when Mon .. Thu gt
  • Working_Like_Dog
  • when Sat gt
  • Drinking
  • when Sun gt
  • Fishing
  • end case
  • -- ?? ??? ?????????? ? ??????????
  • -- ????? ??? ?? ????? ?????????????!
  • ??????????? ?????? ? ??????? ????????
  • package P is
  • type T is ...
  • type T_Ptr is access all T
  • Global T_Ptr
  • end P
  • ...
  • procedure Q is
  • X aliased T
  • Local T_Ptr X'Access -- ??? ??????!
  • -- Local ????? ???? ???????? ???? ??????,
  • -- ? ?.?. ? Global
  • begin
  • Global X'Access -- ??????!
  • Global Local -- ??????!
  • Global XUnchecked_Access
  • -- ?????, ?? ??? ??????
  • -- ??????????????? ??????

19
???? ???????????????? ? ?????????? ????????.
???????? ??? ?????? ?????????
package P2 is function F2 return Integer end
P2
  • package P1 is
  • function F1 return Integer
  • end P1
  • with P1
  • package body P2 is
  • X2 Integer P1.F1
  • function F2 return Integer is
  • begin
  • return X2
  • end F2
  • end P2

with P2 package body P1 is X1 Integer
P2.F2 function F1 return Integer is begin
return X1 end F1 end P1
?????????? ??? ??????? ??????????, ??? ??
?????????? ??????????? ??????? ????????? ????,
???????????? ???????? P1 ? P2, ? ??????????? ???,
? ?????? ??????? ?? ????? ?????? ??????????? ???
??? ?????????, ? ?????? ??????? ?????? ???
??????.
20
?? ??????????? ?????????? ???????? ? ?????
???????? ?????????, ???
  • ?????????? ???????????? (??????????) ? ??????????
    (????) ??? ??????? ???????????? ?????? ?
    ????????????? ??????? ? ????? ?? ??????? ????????
    ??????
  • ????????? ????
  • ??????? ????????? ????
  • ??????? ?????????? ??????????
  • ??????????? ?????? ????????? ????????

21
???? ????? ????? ???? ??????????? ???????????
  • ??????????? ???????? (??? ??? ??????????
    ?????????? ???????, ??? ? ??? ?????? ????????)
    ???????? ?????? ???? ? ?????????? ???????????,
    ????? ?? ?????????? ?? ???????? ? ??????????????
    ???????????? ????
  • ???????????? ???????? (?????????? ???????????)
    ????????????? ????????? ??????????? ???, ???
    ????????????? ??? ????? ???? (?????????)
    ?????????
  • ???? ??????, ??? ?? ?????????? ????? ??????? ???
    ? ??????? ????????, ??????? ? ???? ?? ?? ?????
    ????? ??????????, ??????? ??????!

22
? ??? ??? ?????
  • IEEE Software, 1987, 1, pp40-44
  • ?????????????????? ????????????? ?? ?????? ?????
    (gt 20_000 SLOC)
  • ??? - 12 ?????/????
  • ?????? ????? - 10 ?????/????
  • ????????????? ?????? ? ???????

23
??????????? ???????? ? ???
  • ??? ??? ??????? ?? ????????????????? ???????????
    ?????????, ????????????????? ???? ? ?????? ?
    ????????????? ?? ????????????? ???????????
    ????????
  • ?????????, ?????????? ? ???????? ???, ??????
    ????? ???????? ? ???????????? ?????????? ?
    ???????????? ?????????
  • ????????? ? ???????????? ?????????? ???????????
    ??????? ???????????????? ????????
  • ??? ????? ?????? ???? ?????????????????
  • ?????????????? ??????????????? ??????? ????????
    ??????????? ????????? ? ?????????? ???
  • ?????? ???????? ?????? ???? ??????????? ?
    ?????????? ??? ???????? ??????????????
    ??????????? ?????????
  • ?????? ???????? ?????? ???? ????????????? ??
    ?????????? ? ??????? ????????? ? ??????????
    ?????? ? ???????????? ??????????
  • ??? ???????????? ?????????????? ????, ???????
    ??? ?????.

24
??? ??????????? ???????? ?? 19 ????? ???? (by B.
Brosgol, http//www.embedded.com/story/OEG20021211
S0034 )
  • 1 with Ada.Text_IO
  • 2 procedure Tasking_Example is
  • 3 Finished Boolean False
  • 4 pragma Atomic(Finished)
  • 5
  • 6 task Outputter -- task specification
  • 7
  • 8 task body Outputter is -- task body
  • 9 Count Integer 1
  • 10 begin
  • 11 while not Finished loop
  • 12 Ada.Text_IO.Put_Line(Integer'Image(Cou
    nt))
  • 13 Count Count 1
  • 14 delay 1.0 -- one second
  • 15 end loop
  • 16 Ada.Text_IO.Put_Line("Terminating")
  • 17 end Outputter
  • 18
  • 19 begin

??????????????? ???? ????????? 1 2 3 4 5
6 7 8 9 10 11 12 13 14 15 16 17 18
19 20 Terminating
??????? Tasking_Example
??????? Outputter
25
????? ?????
  • protected type Bounded_Buffer is
  • entry Put (X in Item)
  • entry Get (X out Item)
  • private
  • A Item_Array (1 .. Max)
  • I, J Integer range 1 .. Max 1
  • Count Integer range 0 .. Max 0
  • end Bounded_Buffer
  • protected body Bounded_Buffer isentry Put (X
    in Item) when Count lt Maxisbegin A (I)
    X I I mod Max 1 Count
    Count 1end Putentry Get (X out Item)
    when Count gt 0isbegin X A(J) J
    J mod Max 1 Count Count - 1end
    Get
  • end Bounded_Buffer
  • -- ????????????? ??????
  • -- ???????? ?????? ? ??????
  • -- ????????? ??????????
  • -- ?????? ?????????
  • My_Buffer Bounded_Buffer...
  • My_Buffer.Put (Something)...My_Buffer.Get
    (To_Something)

26
GNAT ?????????? ??? 83/95/2005/2012 ? ?????????
???????????? GNU GPL
  • ?????????? ????????? ????? ??? ???
    ????????????? GCC GUI ????? ????????????
    ????? ??????????????? ??????? ??? ????????
    ???????? ??????????
  • ???????????????? ??? ?????????? GPL/GMGPL
  • ??? ???????? ???? ???? ????????? ?????????
    ???????? ??????, ??????????? ?????????? ????????
    ???????
  • ? ?????? GNAT Pro ??????????? ????????
    GPL-?????????????
  • ??????????????? ? ?????????????? ? 1995 ????
    ????????? AdaCore (www.adacore.com).
  • ???????????????? ???
  • GNAT Pro (AdaCore)
  • GAP (AdaCore)
  • GNAT GPL (AdaCore)
  • ??????, ??????????????, ????????? ?
    ???????????????? ??????? ??????, ????????????,
    ?????????????

27
GNAT Pro ?????????????? ?????????
  • Linux x86 GNU Linux (32 bits)
  • Linux x86-64 GNU Linux (64 bits)
  • Linux HP Integrity Itanium GNU Linux
  • Linux SGI Altix Itanium GNU Linux
  • Solaris SPARC Solaris (32 bits)
  • Solaris SPARC Solaris (64 bits)
  • Solaris x86 Solaris/Trusted Solaris (32 bits)
  • Windows x86 Windows (32 bits, 64 bits)
  • Windows .NET on Windows
  • Mac OS X x86-64 Mac OS X (64 bits)
  • Mac OS X PowerPC Mac OS X
  • HP-UX PA-Risc HP-UX
  • HP-UX Itanium HP-UX
  • Tru64 Alpha Tru64
  • OpenVMS Alpha OpenVMS
  • OpenVMS Itanium OpenVMS
  • IRIX MIPS IRIX
  • AIX PowerPC AIX (32 bits)
  • LynxOS x86 LynxOS 4.x
  • ?????-?????????? ???
  • Embedded Linux
  • PikeOS
  • Nucleus OS
  • LynxOS
  • VxWorks

28
GNAT Pro ?????????????? ?????????????
  • ?????? ???????? (????????)
  • ABB
  • Alcatel Space
  • Air Traffic Control Netherlands
  • BNP Paribas
  • Boeing
  • BAE Systems
  • Ericsson Microwave System
  • Eurocontrol
  • Eurocopter
  • Eurotunnel
  • General Dynamics
  • Havelsan
  • Hewlett-Packard
  • Honeywell
  • Indra
  • Lockheed Martin
  • MBDA
  • Ministry of Defense, the Netherlands
  • ???????
  • Lockheed Martin ???????????? ?????????????
    ???????? C-130J
  • Thales ??????? ??????????? ????????? ?
    ???????????? ??? Airbas A350
  • Thales ?????????? ?? ??? ?????????? ?????????
    ?????
  • Lockheed Martin ??????? ??????????????
    ?????????? ??? ?????????? ????????? ?????????
  • Raytheon ?????? ??????????? ??
  • Boeing - 787 Dreamliner
  • BAE Systems ???????? ?? ??? ????????????
    ??????????? (Eurofighter Typhoon )
  • MBDA ?????????? ?? ??? ????????? ?????????????
    ??????????? ???????

??? ?????????? ?http//www.adacore.com/home/com
pany/customers ? http//www.adacore.com/home/compa
ny/customers/featured-projects
29
GNAT Pro - ??????????
  • Ada front-end (?????????? ?? 95 ?? ??? 5
    ??-????) ????? ????????????? GNU GCC
  • ????? ????????????? ??????????? ????????? ??????
    ??? ??????????????? ?????????
  • GNAT Pro ????? ?????????? ?? ???/??/??
  • ?????????? ??? ? ??????? (native), ??? ? ?
    ?????-?????????
  • ????????????? (??? ???????!) ???????????
    ?????????????? ??????????? (??????????????,
    ???????? ??????????, ???????? ????)
  • ????????? ?????????????? ?????????????
    ????????????? ?????? ????????? ??? (??????????)
    ?????????? ???????????

30
GNAT Pro ?????????? / GUI
  • ?????? ????????? ???? ???????? ????????? ???
  • ???????? ?????????? ????????? (? ??????,
    ???????????? ?????????? ?????)
  • ?????? ? ???????? ??? ??????? ?????????? ??????
    ???????, ????????????? ?? ?????? ??????, ???????
    ? ???????-????????? ??????????????? ? ?.?.
  • ??????? ????? ?????????? ??????????
  • ?????????? ??????? ???????????, ?????? ?????????
    ????????? ????????? ?????????????? ? ????????
    ????? ??????????? ? ??.
  • ????????????? ????????????
  • ??? ???????? GUI ?? ????? (???/??/??)
  • GPS (??????????? ?? ???? GtkAda)
  • GNATbench (Ada plug-in ??? Eclipse)
  • ??????????????????
  • ????????? ? ???????????????? ????? ????????? ??
    ???? ??????????, ??? ????? ???????????

31
GNAT Pro ?????????????? (1)
  • CodePeer ??????????? ?????? ????? ?????? ??????
    ? ?????? ?????????? ?????????, ???????????
    ???????????? ????? (????????????) ???????
    ????????, ???
  • ????????????? ???????????????????? ??????????
  • ???????????? (????????? ? ???????????? ????????
    ??????)
  • ???????????? ????????????? ??????????
  • ??????????? ??? ? ??.
  • gnatstack ??????????? ?????? ??????? ?????
  • ??????????? ????????????? ????? ??????? ???
    ?????? ????? ?????
  • ????????? ???????????? ??????? ???????, ???????
    ????? ???????? ? ??????????????? ????? ?????
  • gnatelim ????????? ?????????????? ???????????
  • ?????? ?????????????? ??????????? ??????????
    ???????????, ??? ???????? ? ?????????? ???????
    ???????????? ????

32
GNAT Pro ?????????????? (2)
  • gnatpp ??????????????? ??????????
    ???????????????? ???-????
  • gnatmetric ?????????? ???????? ??????
  • ???????????? ??????? (????? ?????, ??????????,
    ??????????)
  • ??????? ?????????
  • ????????-??????????????? ???????
  • gnatprep ???????????? ??? ???-????
  • gnatmem ????????? ????????, ?????????? ?
    ??????? ??????
  • gnatcheck ????????? ????? ???????????, ????????
    ????? 60 ??????, ??????????? ?? ????????
    ?????????????
  • gnathtml ??????????? ???-???? ? ?????? HTML
  • ??????????? ????????????? ????????????
    ?????????????? gcc (gcov, gprof)

33
SPARK ???????????? ????????? ?? ??????????
  • (?????????? ?? ???) ???????????? ??????????
    ?????????????? ????????????????
  • ????, ???????????? ??????????? ??? (????????????
    ???) ? ?????????? ???????????, ???????????
    ????????????? ??????????? ? ?????????
    ???????????? ???? (???- ? ????-???????,
    ?????????? ?????? ? ??.)
  • Spark Examiner ?????????? ???????? ????????????
    SPARK-????
  • ???????? ?????????? ? ???? ??????????????
    ????????

34
SPARK ??????
  • ?????????? ??????? ? ??????????????? ????????????
    (?? ????? John Barnes, High Integrity Software.
    The Spark Approach to Safety and Security.
    Addison-Wesley, 2003)
  • package Array_Utilities is
  • Max_Table_Size constant 100
  • type Base_Index_Type is range
    0..Max_Table_Size
  • subtype Index_Type is Base_Index_Type range
    1..Max_Table_Size
  • type Contents_Type is range -1000 .. 1000
  • type Array_Type is array (Index_Type) of
    Contents_Type
  • -- function Ordered(A Array_Type L,U
    Index_Type)
  • -- return Boolean
  • -- function Perm (A, B Array_Type) return
    Boolean
  • procedure Sort (Table in out Array_Type)
  • -- derives Table from Table
  • -- post Ordered (Table, 1, Max_Table_Size) and
  • -- Perm (Table,Table)
  • end Array_Utilities
  • package body Array_Utilities is
  • -- function Partitioned(A Array_Type
  • -- L, M, U Index_Type) return Boolean
  • procedure Sort (Table in out Array_Type) is
  • Key Index_Type
  • -- function The_Smallest (A Array_Type
  • -- L,U Index_Type) return Index_Type
  • function Find_Smallest (Arr
    Array_Type L,U Index_Type)
  • return Index_Type
  • -- pre 1 lt L and L lt U and U lt
    Max_Table_Size
  • -- return The_Smallest(Arr,L,U)
  • is
  • K Index_Type
  • begin
  • K L
  • for I in Index_Type range L 1..U loop

35
SPARK ?????? (?????????)
  • package body Array_Utilities is
  • ...
  • procedure Swap_Elements (T in out
    Array_Type
  • I, J in
    Index_Type)
  • -- derives T from T,I,J
  • -- post T TI gt T(J) J gt T(I)
    and Perm(T,T)
  • is
  • Temp Contents_Type
  • begin
  • Temp T(I) T(I) T(J) T(J)
    Temp
  • end Swap_Elements
  • begin -- Sort
  • for Low in Index_Type range 1 ..
    Max_Table_Size - 1 loop
  • Key Find_Smallest(Table,Low,Max_Table_
    Size)
  • if Key / Low then
  • Swap_Elements(Table,Low,Key)
  • end if

36
?????????????????? ??????????
  • AWS Ada Web Services
  • ?????????? ??? ???????? Web-?????????? ?? ???
  • ????????? ?????????? SOAP, SMTP, LDAP, Jabber
  • ????????? HTTPS/SSL
  • PolyORB ????? ??????? ??? ??????????
    ?????????????? ??????????
  • ??????? ?? ?????????? CORBA
  • ?????????? ????????? ??????? ??? ???????????
    ???????????? ????????????
  • ????????? ????????? ?????????? ??? ?????? ?
    ???????? ???????
  • XML Ada
  • ?????????? ??????? ?? XML
  • ????????? SAX 2.0 ? DOM 2.0
  • ????????? Unicode (UTF-8 ? UTF-16)
  • GtkAda ?????????? ??? ?????????? ???????????
    ???????????????? ???????????
  • ASIS Ada Semantic Interface Specification
  • ?????? ? ?????????? ? ????????? ???????????
    ??????? ?? ????? ???
  • ????????? ?????? ????????????? ???????????
    ???????????? ??????? ???-????

37
????????? ???????????? ??????????????? ????????
(1)
  • ?????? ???????, ??????????? ?? ??????
    GNAT-??????????, ???????????? ???????????? ?
    ?????? ????????? DO-178B
  • ??????????????? ?????????? ??????? ??????????
  • Zero Foot Print (ZFP) ??????????? ??????????,
    ?? ?????????? ???????????? ????
  • Certified Profile ????????????????? ??????????
    ZFP, ??????????? ??? ?????? ???????????????
    ??????????
  • Ravenscar Profile ?????????? ZFP, ???????????
    ????????? ??????????????? ???????????????
    ??????????
  • ??????????? ?????????? ???????????? ????? ???
    ?????????? ????????? (gnatstack)

38
????????? ???????????? ??????????????? ????????
(2)
  • ????????? ???????????? (DO 178B, ?????? ?, ?, ?)
    couverture
  • ???????? ?????????? ????????? ???????
    ???????????? ???????????? ??????? ??????
  • ?????????? ???????????? ????????????? ???? ??
    ???????????????? ?????? ? ?????? ????????
  • ???????? ?????????? ????????? ??????? ???
    ?????????????????? (?????????) ???????????? ????
  • traceability ????? ???????? ????????? ????
    ??????????? ????????????? ???????? ??????????
    ?????
  • ???????? ????? ???????????
  • gnatcheck
  • ????? ??????, ??????????? ?? ???????
    ?????????????
  • ????????????????? ?????? ??? ?????????? ??????
    ???????????
  • ?????? ? ??????????? ?????????? ????? ???????????

39
??????? ??????????????? GNAT Pro
  • ???????????????? ??????? ???????? ?? ??????
    AdaCore
  • ???????? ???????? ? ????
  • ?????? ? ?????? GNAT-??????????, ????????????????
    ??? ????????? GPL/GMGPL (???????????
    ????????????? ????????, ??????? ??? ?? ???????
    ????????????? GPL!)
  • ?????? ? ???????? ??????? ???? ????????? GNAT
    Pro, ?? ??????? ???????????????? ????????
  • ??????????? ????????? ???????? ????? ?????? ????
    ????????? ??????????
  • ??????????? ???????????? ??????????? ???????????
    ?????????? ? ?????? 24?7?365

40
GNAT Pro ??????????? ?????????
  • ?????????????
  • ??????? ???????? ?? ??????????? ????? ??? ?????
    ?????????????????? web-????????? (GNAT Tracker)
  • ??????????????? ????? ?????? 2 ??????? ???, ??
    ???????? 80 ???????? ???????? ????? ? ???????
    ?????? ???????? ???.
  • ??????????? ????????? ????????
  • ?????? ?? ??????? ?? ?????? ? ??????????,
    ??????????? ???????????? GNAT Pro (???, ASIS,
    SPARK, ...)
  • ?????? ? ????????? ? ????????? ???????????
    ????????? GNAT Pro
  • ?????? ? ?????? ???????? ??????????? ????????
    ????????????? GNAT Pro ? ??? ??? ???? ???????
  • ? ?????? ??????????? ??????? ? ??????????
  • ?????? ? ?????????? ??????????? ???????,
    ??????????? ?????? ?????? (workaround)
  • ???? ??? ?????????? ?????????????? ??????
    ????????? ?????????? ? ????????????? ?????????
    (wavefronts), ????? ?????????? ?????? ????????
    ??????????? ????????? ???????? ????????
  • ????????? ??????? ???????? ??????? ?? ??????
    ????????? ? ??????? GNAT Pro, ????????? ????????
    ???????? ????????? ??????????? ? ???????
    ????????? ?????? ????????????.

41
GNAT ???? ?? Pro, ?? ??? (1)?
  • ????? GNAT Pro, AdaCore ?????????? GNAT GPL
  • ????? ???????? ????????? GNAT-?????????? ???
    ?????-???? ??????????? ?? ????????????????
  • ???????? ?? ?? ????????? ???????? ????????, ??? ?
    GNAT Pro
  • ???????? (????????? ?????????) ??? MS Windows,
    Microsoft .NET, Linux Mac OS, Solaris
  • ???????? GNAT-on-MINDSTORMS (?????
    ???????????????? ??????? Lego MINDSTORMS)
  • ???????????????? ????????? ??? GPL (?????????
    ????????? ?????? GPL-?????????)
  • GAP (GNAT Academic Program) ?????? GNAT ???
    ?????????????
  • GNAT GPL (????????????) ??????????? ?????????
    ????? ??????????? ????? ??????????? ?????????
  • ????? 150 ????????????? ?? 25 ?????
  • ?????????? ?????? ??????????????? ???????
    ?????
  • ?? - ??????????, ???????????, ???????
    ????????????
  • ??????? ???????????? ??????????? ???????????
    (????), ??????????? ? ??????????? ????????????)

42
GNAT ???? ?? Pro, ?? ??? (2)?
  • GNAT ?? ?????? ???????????
  • ???????? ?????? ???????? ???????????
    GNAT-?????????? ????????
  • ?????? AdaCore, GNAT ?????????? ?
    ???????????????? ??????? ?????? ? ?????????????
    (? ?????????, FSF)
  • ???? ????? ???????? ????? ???????? ?
  • ?????????? ???????????, ????????????? ??? AdaCore
    (????????, ???? ?????????? ??? ??????????, ??
    ?????????????? AdaCore)
  • ?? ??? ????? ? ????
  • ?? ?????? ?? ????? ? ??????????????? ??????
    ???????????? ?????????, ????????? ??????,
    ??????????? ????????? ???????? ???????? ? ?.?.
  • ? ??????? ?? ?? ? ????????? ?? ??????
    ???????????? ??????????? ????????? ????????
    ?????????, ?? ???? ???????? ?? ?????-???? ???????
    ?? ???
  • ?? ?? ????????? ? ???????? ? ???????????
    ????????? ?? ???????????? ???????

43
?????? ?????? ??????
  • http//www.ada-ru.org/index.html ,
    http//ru.ada-community.org
  • ??? ??-??????, ??????? ????? ?? ????? ???-95
  • ????? ???????? ??????
  • http//www.adacore.com
  • ?????? ???????? GNAT-??????????, ??????? ?????
    ?????????? ?????????? ?? ????? ? ????????????
    ??????? ?? ??? ?????????????
  • http//www.adaic.com
  • ???????? ??? (??? ???????? ?????? ?
    ?????????????), ????????????? ????????? (ASIS),
    ??????????? ????????? ???????, ?????? ?? ????????

44
????
  • ??? ???????? ???????????? ??????????? ???????
    ??????????? ?????????
  • ??? ??????? ? ??????? ???????????? ? ??? ????? ?
    ??? ?????????? ?????????? ?????? ? ????????????
    ???????????? ? ??????????
  • ????????????? ??????????? ?? ?? ?????? ?????
    ?????????? ?????????? ? ??????????? ????????? ???
    ??????????, ????? ????????? ?????????? ???????
    ???????????? ?? ????????????? ??? ???????????????
    ? ??? ??? ???? ????????
Write a Comment
User Comments (0)
About PowerShow.com