Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.5.ZASTOSOWANIATECHNOLOGIIKOMPILATORÓW
25
Interpreteryzapytańbazodanowych
Pozaspecyfikowaniemoprogramowaniaisprzętu,językiużytecznewwielu
innychzastosowaniach.Dobrymprzykłademjęzykizapytań,azwłaszczaSQL
(StructuredQueryLanguage),służącedoprzeszukiwaniabazdanych.Zapytania
bazodanoweskładająsięzpredykatówzawierającychoperatoryrelacyjneilo-
giczne.Mogąonebyćinterpretowanelubkompilowanewpoleceniaprzeszukujące
bazydanychpodkątemrekordówspełniającychtepredykaty.
Skompilowanesymulacje
Symulacjatoogólnatechnikawykorzystywanawwieludyscyplinachnaukowych
iinżynierskichwcelulepszegozrozumieniajakiegośzjawiskalubweryfikacji
projektu.Wejściedosymulatorazazwyczajzawieraopisprojektuiokreślone
parametrywejściowe,dlaktórychjestwykonywanadanasymulacja.Symulacje
mogąbyćbardzokosztowneobliczeniowo.Zazwyczajpotrzebujemyzasymulować
wielemożliwychalternatywnychprojektówdlawieluróżnychzestawówdanych
wejściowychikażdytakieksperymentmożewymagaćwieludninawysoko
wydajnymkomputerze.Zamiastpisaniasymulatorainterpretującegoprojekt
szybszejestskompilowanietegoprojektuwceluutworzeniakodumaszynowego,
którynatywniebędziesymulowałtenokreślonyprojekt.Skompilowanesymulacje
mogądziałaćorzędywielkościszybciejniżwprzypadkupodejściaopartego
nainterpreterze.Skompilowanesymulacjewykorzystywanewwieluzaawan-
sowanychnarzędziachsymulującychprojektynapisanewjęzykachVeriloglub
VHDL.
1.5.5.Narzędzianiezawodnościoprogramowania
Programybezwątpienianajbardziejskompilowanymiartefaktami,jakie
kiedykolwiektworzono;składająsięzwielu,wieluszczegółów,zktórychkażdy
musibyćpoprawny,abyprogrammógłdziałaćbezbłędnie.Wrezultaciebłędy
wszechobecnewprogramach;błędymogąpołożyćsystem,powodowaćzwracanie
niewłaściwychwyników,sprawiać,żesystemjestpodatnynaataki,anawet
doprowadzićdokatastrofalnychawariiwsystemachkrytycznych.Podstawową
technikąlokalizowaniabłędówwprogramachjesttestowanie.
Interesującymiobiecującympodejściemuzupełniającymjestużycieanalizy
przepływudanychwcelustatycznejlokalizacjibłędów(czylijeszczeprzed
uruchomieniemprogramu).Analizaprzepływudanychpozwalaznaleźćbłędyna
wszystkichmożliwychścieżkachwykonania,anietylkonatych,którenastępują
dlaokreślonychzestawówdanychwejściowych,jakwprzypadkutestowania
programu.Wieleztechnikanalizyprzepływudanych,oryginalniestworzonych
zmyśląooptymalizacjiwkompilatorach,możezostaćużytychdotworzenia
narzędziwspomagającychprogramistówwzadaniachinżynieriioprogramowania.