Instrumentalny na przykładach. Systemy narzędziowe programowania. Esencja VisualBasic i jego krótka historia

Nawet przy setkach tysięcy dostępnych programów komputerowych użytkownicy mogą potrzebować czegoś, czego istniejące programy nie mają (lub robią, ale nie robią). W takich przypadkach oprogramowanie narzędziowe służy do tworzenia nowych programów, umożliwiając rozwój zarówno oprogramowania systemowego, jak i aplikacyjnego. Pełni więc w programowaniu rolę środka produkcji.

Systemy programowania- są to kompleksy programów i innych narzędzi przeznaczonych do tworzenia i obsługi programów w określonym języku programowania dla określonej architektury (platformy) komputera PC.

System programowania zwykle obejmuje Edytor tekstu programy, tłumacz programy, biblioteki rutyny i redaktorzy linków, debugery, systemy pomocy, a czasami różne programy pomocnicze.

Język programowania to sztuczny język, za pomocą którego napisany jest algorytm rozwiązywania problemu w formie zrozumiałej dla komputera PC.

Istnieje wiele języków programowania, a każdy może mieć dziesiątki wersji. Każdy programista pisze programy w dogodnym dla siebie języku i nie ma języka programowania, który jest uważany za ogólnie akceptowany.

Ale wszystkie języki programowania mają jedną wspólną cechę. Są zrozumiałe dla programistów, ale niezrozumiałe dla procesora, ponieważ procesor może pracować tylko z liczbami binarnymi i dlatego rozumie programy napisane tylko w kod maszynowy. Dlatego programy napisane w dowolnym języku programowania są najpierw „tłumaczone” na język procesora, tj. przekonwertowany na kod maszynowy. To tłumaczenie jest wykonywane przez specjalne programy tłumaczeniowe. W języku angielskim nazywa się „tłumaczenie”. audycja (tłum), więc nazywane są programy tłumaczące programy na kod maszynowy tłumacze.

Na scenie transmisje następuje przemiana kod źródłowy programy w kod obiektu, który jest dalej przetwarzany edytor linków. Link Editor to specjalny program, który zapewnia budowę moduł rozruchowy, nadaje się do wykonania (ryc. 6.2).

Ryż. 6.2. Schemat procesu tworzenia modułu ładującego programu

Istnieją następujące rodzaje tłumaczy: tłumacz ustny, kompilator.

Interpretator pobiera kolejny operator językowy z tekstu programu, analizuje jego strukturę i natychmiast go wykonuje. Następnie przechodzi do następny operator. Kompilator tłumaczy cały program na instrukcje maszynowe.

Spośród dzisiejszych uniwersalnych języków programowania najpopularniejsze są: BASIC (Basic), Pascal (Pascal), C ++ (C ++), Java (Java).

Dla każdego z tych języków programowania istnieje obecnie wiele systemów programowania produkowanych przez różne firmy i skupiających się na różnych modelach komputerów PC i systemach operacyjnych. Najpopularniejsze są następujące środowiska wizualne do szybkiego projektowania programów dla systemu Windows: Microsoft Visual Basic; Borland Delphi; Borland C++Builder Microsoft Visual Studio (Visual Basic.net, C++, C#, J#).

Nowoczesne systemy programowania pozwalają tworzyć programy, które są wywoływane podczas przeglądania stron internetowych w globalnej sieci elektronicznej Internet.

Szczególną klasą systemów programistycznych są systemy do tworzenia aplikacji klient-serwer. Systemy te pozwalają na szybkie tworzenie systemów informatycznych dla działów, a nawet dużych przedsiębiorstw. Zawierają narzędzia do tworzenia interfejsu użytkownika, opisy procedur przetwarzania danych, przygotowania do wykonania typowych czynności przetwarzania danych itp. Systemy te z reguły pozwalają na pracę z różnymi systemami DBMS - Oracle, Sybase, Microsoft SQL Server itp. Do najpopularniejszych systemów tego typu należą PowerBuilder firmy Sybase, Delphi firmy Borland, Visual Basic firmy Microsoft. Oczywiście narzędzia do tworzenia aplikacji klient-serwer są również zawarte w DBMS klient-serwer (Oracle, Sybase itp.), ale są skupione tylko na tym DBMS.

Praca pisemna

OPROGRAMOWANIE – zestaw programów systemu przetwarzania informacji i dokumenty polisy wymagane do działania tych programów (GOST 19781-90). Także - zbiór programów, procedur i zasad oraz dokumentacji związanej z działaniem systemu przetwarzania danych (ST ISO 2382/1-84).

OPROGRAMOWANIE INSTRUMENTALNE – oprogramowanie przeznaczone do użytku przy projektowaniu, rozwijaniu i utrzymywaniu programów. Zwykle termin ten jest używany do podkreślenia różnicy między tą klasą oprogramowania a oprogramowaniem aplikacyjnym i systemowym.

KOMPILER to kompilator, który konwertuje program napisany w języku źródłowym na moduł obiektowy.

TŁUMACZ - program (czasami sprzęt komputerowy), który analizuje polecenia lub instrukcje programu i natychmiast je wykonuje.

SYSTEM OPERACYJNY – zespół programów sterujących i przetwarzających, które z jednej strony pełnią funkcję interfejsu pomiędzy urządzeniami systemu komputerowego a programami aplikacyjnymi, a z drugiej strony mają na celu sterowanie urządzeniami, zarządzanie procesami obliczeniowymi, efektywną dystrybucję zasobów obliczeniowych między procesów obliczeniowych i organizowania niezawodnych obliczeń.

STOSOWANY PROGRAM – program przeznaczony do wykonywania określonych zadań użytkownika i przeznaczony do bezpośredniej interakcji z użytkownikiem.

VISUALBASIC to narzędzie do tworzenia oprogramowania opracowane przez firmę Microsoft i obejmuje język programowania oraz środowisko programistyczne.

VISUALBASICFORAPPLICATION - nieco uproszczona implementacja języka programowania Visual Basic wbudowana w linię produktów Microsoft Office(w tym wersje Mac OS), a także wiele innych pakietów oprogramowania, takich jak AutoCAD, SolidWorks, CorelDRAW, WordPerfect i ESRI ArcGIS.

Celem pracy jest zbadanie rodzajów i funkcji oprogramowania, w szczególności instrumentalnego.

Klasyfikacja oprogramowania:

Rodzaje oprogramowania narzędziowego:

1) Edytory tekstu

4) Kompilatory

5) Tłumacze ustni

6) Łączniki

8) Asemblery

9) Debugery

10) Profilerzy

11) Generatory dokumentów

Aby stworzyć program w wybranym języku programowania potrzebne są następujące komponenty:

2. Kompilator lub interpreter. Tekst źródłowy jest tłumaczony na pośredni kod wynikowy przy użyciu programu kompilatora.

Efekt pracy: Uwzględniono oprogramowanie, jego funkcje i rodzaje, w szczególności oprogramowanie instrumentalne, jego istotę, zadania. Rozdział trzeci omawia Microsoft Visual Basic jako narzędzie programistyczne oraz jego dialekt - Microsoft Visual Basic forApplication. W Praca semestralna zaimplementowano algorytm rozwiązania problemu finansowo-ekonomicznego z wykorzystaniem języka programowania Pascal.

Wstęp

W nowoczesny świat niejeden człowiek, który spróbował dobrodziejstw cywilizacji, nie wyobraża sobie życia bez jej używania technologia komputerowa. Jego zastosowanie występuje w każdej sferze działalności człowieka: produkcji, handlu, edukacji, rozrywce i komunikacji ludzi, ich działalności naukowej i kulturalnej. Wszystko to za sprawą możliwości doboru sprzętu komputerowego do rozwiązania każdego, nawet najbardziej skomplikowanego zadania.

Jednak powszechność i specjalizacja technologii komputerowej jest zapewniona przez zastosowanie na bazie niemal każdego komputera innego zestawu oprogramowania, które dostarcza rozwiązania do dowolnych zadań.

Wszyscy widzimy ogromną różnorodność programów komputerowych i oszałamiające tempo ich rozwoju i ulepszania, a tylko niewielka część z nas reprezentuje niewidzialną stronę w ich projektowaniu, rozwoju i tworzeniu. Jednak ten obszar technologii komputerowej jest naszym zdaniem najważniejszy, ponieważ od jej rozwoju zależeć będzie przyszłość technologii komputerowej.

A ponieważ rozwój dowolnego programu komputerowego odbywa się za pomocą oprogramowania narzędziowego, w naszej pracy semestralnej chciałbym się nad nim szczegółowo zastanowić, podkreślając go z całego oprogramowania i ujawniając jego istotę i cechy.

Dla jasności rozważymy oprogramowanie narzędziowe (przedmiot badań) na przykładzie pakietu oprogramowania VisualBasicforApplication (przedmiot badań) służącego do programowania w środowisku Microsoft Office, najbardziej powszechnym i popularnym pakiecie biurowym.

1. Oprogramowanie

1.1 Pojęcie i istota oprogramowania

Oprogramowanie (SW) jest integralną częścią system komputerowy. Jest to logiczna kontynuacja środków technicznych dowolnego komputera. Zasięg konkretnego komputera określa stworzone dla niego oprogramowanie. Sam komputer nie ma wiedzy w żadnym obszarze zastosowania. Cała ta wiedza jest skoncentrowana w programach działających na komputerach, które posiadają zestaw określonej funkcjonalności i są przeznaczone do wykonywania określonych, w większości przypadków wysoce wyspecjalizowanych funkcji, takich jak tworzenie i przetwarzanie obrazy graficzne lub pliki dźwiękowe.

Oprogramowanie składa się obecnie z setek tysięcy programów zaprojektowanych do przetwarzania szerokiej gamy informacji w różnych celach.

Oprogramowanie (SW) obejmuje również cały obszar działalności w zakresie projektowania i tworzenia oprogramowania:

1) technologia projektowania oprogramowania (na przykład projektowanie odgórne, projektowanie strukturalne i obiektowe);

2) metody testowania programów;

3) metody dowodzenia poprawności programów;

4) analiza jakości programów;

5) dokumentacja programów;

6) rozwój i wykorzystanie narzędzi programistycznych, które ułatwiają proces projektowania oprogramowania i wiele więcej.

Istnieje wiele różnych definicji oprogramowania. Ogólnie rzecz biorąc, oprogramowanie to zestaw programów systemu przetwarzania informacji i dokumentów programowych niezbędnych do działania tych programów (GOST 19781-90). Także - zbiór programów, procedur i zasad oraz dokumentacji związanej z działaniem systemu przetwarzania danych (ST ISO 2382/1-84).

Oprogramowanie jest jednym z rodzajów wsparcia systemu komputerowego, obok wsparcia technicznego (sprzętowego), matematycznego, informacyjnego, językowego, organizacyjnego i metodologicznego.

W slangu komputerowym często używa się słowa oprogramowanie z angielskiego słowa oprogramowanie, które po raz pierwszy zostało użyte w tym znaczeniu w artykule w American Mathematical Monthly autorstwa matematyka z Uniwersytetu Princeton, Johna W. Tukeya, w 1958 roku.

Inne definicje:

1) OPROGRAMOWANIE to zestaw programów umożliwiających automatyczne przetwarzanie informacji na komputerze.

2) OPROGRAMOWANIE (oprogramowanie komputera elektronicznego), zestaw programów systemu przetwarzania danych oraz dokumenty programowe niezbędne do realizacji programów na komputerze elektronicznym.

3) OPROGRAMOWANIE – zestaw programów do zarządzania procesem pracy komputera, automatyzacja programowania.

4) OPROGRAMOWANIE – zestaw programów komputerowych służących do przetwarzania lub przesyłania danych.

Wszystkie definicje są podobne i odzwierciedlają istotę oprogramowania - organizację interakcji części sprzętowej (technicznej) w postaci różnych wbudowanych węzłów i urządzeń peryferyjnych, ich kontrolę i koordynację ogólnej interakcji systemu komputerowego ze sobą i z użytkownikiem.

1.2 Funkcje oprogramowania

Powyższe koncepcje oprogramowania określają funkcje realizowane przez oprogramowanie w procesie funkcjonowania sprzętu komputerowego. Lista tych funkcji jest bardzo zróżnicowana, ale warunkowo można je podzielić na pięć następujących typów:

1. Sprzętowo-mechaniczny. Łączą różne komponenty komputera, zapewniają transmisję sygnału sprzętowego z jednego komponentu do drugiego.

2. Logika maszynowa. Zestaw elektromagnetycznych impulsów sprzętowych jest przetwarzany i interpretowany w logicznie świadomy kod programu o określonej strukturze i właściwościach.

3. Informacja i rozkazy. Sprawdzają zgodność kodu programu z zasadami systemu i tworzą struktura logiczna informacje i wdrażać je.

4. Interfejs. Zapewniają przetwarzanie i interpretację kodu programu do formatu wyświetlania dostępnego dla użytkownika. Tworzy sprzyjające środowisko do interakcji „Komputer-Człowiek, Człowiek-Komputer”.

5. Zastosowane. Wykonuje działania matematyczne, logiczne, fizyczne i inne na zbiorze dostępnych danych, innymi słowy przetwarza dostępne informacje w celu rozwiązania określonych problemów.

Lista ta nie jest wyczerpująca, co wskazuje na różnorodność i niejednoznaczność funkcji realizowanych przez oprogramowanie.

1.3 Rodzaje oprogramowania

W zależności od funkcji, jakie pełni dany komponent komputera, konieczne staje się stworzenie dla niego własnego specjalistycznego oprogramowania, co jest podstawowym motywem tworzenia oprogramowania różnego typu pokazanego na (rys. 1):

a) programy użytkowe, które bezpośrednio zapewniają wykonanie prac wymaganych przez użytkowników;

B) programy systemowe, przeznaczone do sterowania pracą systemu komputerowego, realizują różne funkcje pomocnicze, na przykład:

1) zarządzanie zasobami komputerowymi;

2) tworzenie kopii wykorzystywanych informacji;

3) sprawdzanie sprawności urządzeń komputerowych;

4) wydawanie informacji referencyjnych o komputerze itp.;

c) systemy oprogramowania narzędziowego, które ułatwiają proces tworzenia nowych programów na komputer.

Oprogramowanie systemowe zapewnia funkcjonowanie i utrzymanie komputera, a także automatyzuje proces tworzenia nowych programów. Oprogramowanie systemowe obejmuje: systemy operacyjne i ich interfejs użytkownika; instrumentalny oprogramowanie; systemy konserwacji.

System operacyjny jest obowiązkową częścią specjalnego oprogramowania, które zapewnia sprawne działanie komputer osobisty w różnych trybach, organizując wykonywanie programów i interakcję użytkownika oraz urządzenia zewnętrzne z komputerem.

Interfejs użytkownika (programy usługowe) to dodatki programowe systemu operacyjnego (powłoki i środowiska) mające na celu uproszczenie komunikacji użytkownika z systemem operacyjnym.

Programy udostępniające interfejs zachowują formę komunikacji (dialogu) między użytkownikiem a systemem operacyjnym, ale zmieniają język komunikacji (zwykle język poleceń jest konwertowany na język menu). Systemy usługowe można warunkowo podzielić na systemy interfejsów, powłoki system operacyjny i użyteczności publicznej.

Systemy interfejsów to potężne systemy usługowe, najczęściej typu graficznego, które ulepszają nie tylko interfejs użytkownika, ale także interfejs programowy systemów operacyjnych, w szczególności poprzez implementację dodatkowych procedur podziału dodatkowych zasobów.

Powłoki systemów operacyjnych zapewniają użytkownikowi jakościowo nowy interfejs w porównaniu z tym, który jest realizowany przez system operacyjny i sprawiają, że znajomość tego ostatniego jest opcjonalna.

Narzędzia automatyzują wykonywanie pewnych typowych, często używanych procedur, których wdrożenie wymagałoby od użytkownika opracowania specjalnych programów. Wiele narzędzi ma rozbudowany interaktywny interfejs z użytkownikiem i jest zbliżonych pod względem komunikacji do powłok.

Narzędzia programistyczne (systemy programistyczne) – obowiązkowa część oprogramowania, za pomocą której tworzone są programy. Oprogramowanie narzędziowe obejmuje narzędzia do pisania programów (edytory tekstu); narzędzia do konwertowania programów do postaci odpowiedniej do wykonania na komputerze (asemblery, kompilatory, interpretery, programy ładujące i linkery), narzędzia do monitorowania i debugowania programów.

Edytory tekstowe pozwalają w wygodny sposób edytować, formować i łączyć teksty programów, a także niektórych - oraz kontrolować składnię tworzonych programów.

Program napisany w języku algorytmicznym musi zostać przekształcony w moduł obiektowy napisany w języku maszynowym (w kodzie binarnym). Takiej transformacji dokonują tłumacze (asembler - z języka Assembler i kompilatory - z języków wysokiego poziomu). W przypadku niektórych języków algorytmicznych stosowane są interpretery, które nie tworzą modułu obiektowego, ale przy każdym kolejnym wykonaniu programu, tłumacząc każdą z jego poszczególnych linii lub instrukcji na język maszynowy. Moduł obiektowy jest przetwarzany przez moduł ładujący - linker, który przekształca go w wykonywalny program maszynowy.

Narzędzia do debugowania umożliwiają śledzenie programów (wykonywanie krok po kroku z wydawaniem informacji o wynikach wykonania), sprawdzanie składni programu i wyników pośrednich w punktach przerwania oraz modyfikowanie wartości zmiennych w tych punktach.

techniczne i serwis pogwarancyjny to narzędzia programowe do monitorowania, diagnozowania i przywracania stanu komputera, dysków itp.

Oprogramowanie aplikacyjne zapewnia rozwiązanie zadań użytkownika. Kluczową koncepcją jest tutaj pakiet oprogramowania użytkowego.

Pakiet oprogramowania aplikacyjnego to zestaw programów do rozwiązywania szeregu problemów dotyczących określonego tematu lub przedmiotu. Istnieją następujące rodzaje pakietów aplikacji:

1) ogólny cel- ukierunkowane na automatyzację szerokiego zakresu zadań użytkownika (procesory tekstu, edytory arkuszy kalkulacyjnych, systemy zarządzania bazami danych, procesory graficzne, systemy wydawnicze, systemy automatyzacji projektowania itp.);

2) zorientowany na metodykę - wdrażanie różnych ekonomicznych i matematycznych metod rozwiązywania problemów (programowanie matematyczne, planowanie i zarządzanie siecią, teoria kolejek, statystyka matematyczna itp.);

3) zorientowane na problem - mające na celu rozwiązanie określonego zadania (problemu) w określonym obszarze tematycznym (pakiety bankowe, pakiety księgowe, zarządzanie finansami, systemy odniesienia prawnego itp.).

Oprogramowanie aplikacyjne obejmuje narzędzia oprogramowania serwisowego, które służą do organizowania dogodnego dla użytkownika środowiska pracy, a także pełnią funkcje pomocnicze (zarządzające informacjami, tłumacze itp.).

Konstruując klasyfikację oprogramowania, należy wziąć pod uwagę fakt, że szybki rozwój technologii komputerowej i rozszerzenie zakresu aplikacji komputerowych znacznie przyspieszyły proces ewolucji oprogramowania. Jeśli wcześniej łatwo było wymienić główne kategorie oprogramowania - systemy operacyjne, translatory, pakiety aplikacji, teraz sytuacja radykalnie się zmieniła. Rozwój oprogramowania poszedł zarówno w głąb (nowe podejście do budowy systemów operacyjnych, języków programowania itp.), jak iwszerz (programy użytkowe przestały być stosowane i nabrały niezależnej wartości). Równowaga pomiędzy wymaganym oprogramowaniem a dostępnym na rynku szybko się zmienia. Nawet klasyczne oprogramowanie, takie jak systemy operacyjne, stale ewoluuje i jest wyposażone w funkcje intelektualne, z których wiele wcześniej należało tylko do ludzkich możliwości intelektualnych.

2. Oprogramowanie narzędziowe

2.1 Istota i koncepcja oprogramowania instrumentalnego

Oprogramowanie narzędziowe (IPO) – oprogramowanie przeznaczone do wykorzystania w projektowaniu, rozwoju i utrzymaniu programów.

Stosowane oprzyrządowanie w fazie rozwoju. Oprogramowanie narzędziowe to zestaw programów służących do pomocy programistom w ich pracy, aby pomóc menedżerom rozwoju oprogramowania w ich chęci kontrolowania procesu rozwoju i powstających produktów. Najbardziej znanymi przedstawicielami tego oprogramowania są programy tłumaczy z języków programowania, które pomagają programistom pisać instrukcje maszynowe. Programy narzędziowe to tłumacze z języków Fortran, Cobol, Jovial, BASIC, APL i Pascal. Ułatwiają proces tworzenia nowych programów pracy. Jednak tłumacze z języków to tylko najbardziej znana część programów narzędziowych; jest ich bardzo dużo.

Wykorzystanie komputerów do tworzenia nowych programów nie jest oczywiste dla osób, które nie są zawodowymi programistami. Często zdarza się, że profesjonaliści jednym tchem rozmawiają o oprogramowaniu narzędziowym (faza rozwojowa) i systemowym (faza użytkowa), zakładając, że niewtajemniczeni w tajniki swoich umiejętności są świadomi takiej roli oprogramowania narzędziowego. Oprócz fazy użytkowania (dla programów aplikacyjnych) oprogramowanie systemowe działa również w fazie rozwoju, ale tylko w połączeniu z oprogramowaniem narzędziowym. Oprogramowanie narzędziowe lub systemy programowania to systemy automatyzujące tworzenie nowych programów w języku programowania.

W najbardziej ogólnym przypadku do stworzenia programu w wybranym języku programowania (systemowym języku programowania) potrzebne są następujące komponenty:

1. Edytor tekstu do tworzenia pliku z kodem źródłowym programu.

2. Kompilator lub interpreter. Tekst źródłowy jest tłumaczony na pośredni kod wynikowy przy użyciu programu kompilatora. Tekst źródłowy dużego programu składa się z kilku modułów (plików z tekstami źródłowymi). Każdy moduł jest kompilowany do osobnego pliku z kodem wynikowym, który następnie musi zostać połączony w jedną całość.

3. Linker lub asembler, który łączy moduły obiektowe i generuje działającą aplikację - kod wykonywalny.

Kod wykonywalny to kompletny program, który można uruchomić na dowolnym komputerze z systemem operacyjnym, dla którego program został utworzony. Z reguły plik wynikowy ma rozszerzenie .EXE lub .COM.

Ostatnio upowszechniły się metody programowania wizualnego (wykorzystujące języki skryptowe), ukierunkowane na tworzenie aplikacji Windows. Ten proces jest zautomatyzowany w środowiskach szybkiego projektowania. W tym przypadku wykorzystywane są gotowe komponenty wizualne, które są konfigurowane za pomocą specjalnych edytorów.

Najpopularniejsze edytory (programowanie systemów z wykorzystaniem narzędzi wizualnych) do projektowania wizualnego:

1) Borland Delphi - przeznaczony do rozwiązywania prawie każdego problemu z programowaniem aplikacji.

2) Borland C++ Builder to doskonałe narzędzie do tworzenia aplikacji DOS i Windows.

3) Microsoft Visual Basic to popularne narzędzie do tworzenia programów Windows.

4) Microsoft Visual C++ - to narzędzie pozwala na tworzenie dowolnych aplikacji działających w środowisku systemu operacyjnego, takim jak Microsoft Windows

Istotą oprogramowania instrumentalnego jest więc stworzenie dowolnego programu wykonywalnego poprzez konwersję formalnie logicznych wyrażeń na wykonywalny kod maszynowy, a także jego kontrolę i korektę.

2.2 Zadania i funkcje oprogramowania narzędziowego

Oprogramowanie narzędziowe, jako szczególny rodzaj oprogramowania, charakteryzuje się cechami ogólnymi i szczegółowymi

funkcji, jak w przypadku wszelkiego oprogramowania w ogólności. Funkcje ogólne są przez nas rozważane powyżej, a funkcje specjalistyczne są nieodłączne ten typ programy to:

1. Stworzenie tekstu opracowanego programu za pomocą specjalnie ustalonych słów kodowych (języka programowania), a także określonego zestawu znaków i ich lokalizacji w tworzonym pliku - składnia programu.

2. Tłumaczenie tekstu stworzony program w kod zorientowany maszynowo, dostępny do rozpoznawania przez komputer. W przypadku znacznej objętości tworzonego programu jest on dzielony na osobne moduły i każdy z modułów tłumaczony jest osobno.

3. Połączenie poszczególnych modułów w jeden wykonywalny kod, zgodnie z niezbędną strukturą, zapewniając koordynację interakcji poszczególnych części ze sobą.

4. Testowanie i kontrola tworzonego programu, wykrywanie i eliminacja błędów formalnych, logicznych i składniowych, sprawdzanie programów pod kątem niedozwolonych kodów, a także ocena wydajności i potencjału stworzonego programu.

2.3 Rodzaje oprogramowania narzędziowego

Na podstawie zadań przypisanych oprogramowaniu instrumentalnemu możemy wyróżnić duża liczba różne rodzaje oprogramowania instrumentalnego:

1) Edytory tekstu

2) Zintegrowane środowiska programistyczne

4) Kompilatory

5) Tłumacze ustni

6) Łączniki

7) Parsery i generatory parserów (patrz Javacc)

8) Asemblery

9) Debugery

10) Profilerzy

11) Generatory dokumentów

12) Narzędzia do analizy pokrycia kodu

13) Narzędzia ciągłej integracji

14) Zautomatyzowane narzędzia do testowania

15) Systemy kontroli wersji itp.

Należy zauważyć, że powłoki do tworzenia programów aplikacyjnych są również tworzone przez programy narzędziowe i dlatego można je nazwać programami aplikacyjnymi. Rozważ krótko cel niektórych programów instrumentalnych.

Edytory tekstu.

Edytor tekstu - program komputerowy, przeznaczony do przetwarzania plików tekstowych, takich jak tworzenie i wprowadzanie zmian.

Rodzaje edytorów tekstu.

Konwencjonalnie wyróżnia się dwa rodzaje edytorów: strumieniowe edytory tekstu i edytory interaktywne.

Edytory strumieniowe to programy komputerowe, których zadaniem jest automatyczne przetwarzanie wejściowych danych tekstowych otrzymanych z pliku tekstowego zgodnie z regułami z góry określonymi przez użytkowników. Najczęściej regułami są wyrażenia regularne, w dialekcie specyficznym dla tego konkretnego edytora tekstu. Przykładem takiego edytora tekstu jest edytor Sed.

Interaktywne edytory tekstu to rodzina programów komputerowych przeznaczonych do wprowadzania zmian plik tekstowy interaktywnie. Takie programy pozwalają wyświetlać aktualny stan danych tekstowych w pliku i wykonywać na nich różne akcje.

Często interaktywne edytory tekstu zawierają znaczące dodatkowe funkcje przeznaczone do automatyzacji niektórych czynności edycyjnych lub do zmiany sposobu wyświetlania danych tekstowych, w zależności od ich semantyki. Podświetlanie składni jest przykładem tego drugiego rodzaju funkcjonalności.

Edytory tekstu służą do tworzenia i edytowania dokumentów tekstowych. Najpopularniejsze to MS WORD, Leksykon. Główne funkcje edytory tekstu Czy:

1) praca z fragmentami dokumentów,

2) wstawianie obiektów utworzonych w innych programach

3) paginację tekstu dokumentu

4) wprowadzanie i edycja tabel

5) wprowadzanie i edycja formuł

6) formatowanie akapitów

7) automatyczne tworzenie list

8) automatyczne tworzenie spisu treści.

Znane są dziesiątki edytorów tekstu. Najbardziej dostępne to NOTEPAD(notatnik), WORDPAD, WORD. O pracy danego edytora tekstu decydują zwykle funkcje, których przeznaczenie jest odzwierciedlone w pozycjach menu oraz w systemie pomocy.

Zintegrowane środowisko programistyczne

Integrated Development Environment (ISD) to system oprogramowania używany przez programistów do tworzenia oprogramowania (SW). Środowisko programistyczne zwykle obejmuje:

1) edytor tekstu

2) kompilator i/lub interpreter

3) narzędzia do automatyzacji montażu

4) debuger.

Czasami zawiera również narzędzia do integracji z systemami kontroli wersji oraz różnorodne narzędzia upraszczające budowę graficznego interfejsu użytkownika. Wiele nowoczesnych środowisk programistycznych obejmuje również przeglądarkę klas, inspektora obiektów i diagram hierarchii klas do wykorzystania w programowaniu zorientowanym obiektowo. Chociaż istnieją środowiska programistyczne zaprojektowane dla kilku języków programowania - takich jak Eclipse, NetBeans, Embarcadero Pracownia RAD, Qt Creator czy Microsoft Visual Studio, zazwyczaj środowisko programistyczne przeznaczone jest dla jednego konkretnego języka programowania – np. Visual Basic, Delphi, Dev-C++.

Szczególnym przypadkiem ISR są wizualne środowiska programistyczne, które obejmują możliwość wizualnej edycji interfejsu programu.

SDK.

SDK (z angielskiego SoftwareDevelopmentKit) lub „devkit” to zestaw programistyczny, który umożliwia specjalistom ds. oprogramowania tworzenie aplikacji dla określonego pakietu oprogramowania, narzędzi programistycznych, platformy sprzętowej, systemu komputerowego, konsol do gier wideo, systemów operacyjnych i innych platform.

Programista zwykle uzyskuje SDK bezpośrednio od twórcy docelowej technologii lub systemu. Często pakiet SDK jest dystrybuowany przez Internet. Wiele SDK jest dystrybuowanych bezpłatnie, aby zachęcić programistów do korzystania z danej technologii lub platformy.

Dostawcy zestawów SDK czasami zastępują termin Oprogramowanie w pakiecie Software Development Kit bardziej dokładnym słowem. Na przykład Microsoft i Apple dostarczają zestawy Driver Development Kit (DDK) do opracowywania sterowników urządzeń, podczas gdy PalmSource nazywa swój zestaw narzędzi programistycznych „PalmOS Development Kit (PDK)”.

Przykłady SDK :

5) Zestaw programistyczny Javy

6) Pakiet SDK urządzeń Opery

Kompilatory.

Kompilator -

1) Program lub narzędzie sprzętowe wykonujące kompilację.

2) Program maszynowy użyty do kompilacji.

3) Translator konwertujący program napisany w języku źródłowym na moduł obiektowy.

4) Program, który tłumaczy tekst programu w języku wysokiego poziomu na równoważny program w języku maszynowym.

5) Program przeznaczony do tłumaczenia języka wysokiego poziomu na kod absolutny lub czasami na język asemblera. Informacje wejściowe dla kompilatora ( źródło) to opis algorytmu lub programu w języku specyficznym dla domeny, a wyjściem kompilatora jest równoważny opis algorytmu w języku zorientowanym maszynowo (kod obiektowy).

Kompilacja -

1) Tłumaczenie programu na język zbliżony do maszyny.

2) Tłumaczenie programu napisanego w języku źródłowym na moduł obiektowy. Implementowane przez kompilator.

Kompiluj - tłumacz program maszynowy z języka specyficznego dla domeny na język zorientowany na maszynę.

Rodzaje kompilatorów :

1) Wektoryzacja. Tłumaczy kod źródłowy na kod maszynowy komputerów wyposażonych w procesor wektorowy.

2) Elastyczny. Skompilowany w sposób modułowy, sterowany przez tabele i zaprogramowany w języku wysokiego poziomu lub zaimplementowany za pomocą kompilatora kompilatora.

3) Dialog.

4) Przyrostowy. Ponowne tłumaczenie fragmentów programu i rozszerzeń bez ponownej kompilacji całego programu.

5) Interpretacja (krok po kroku). Sekwencyjnie wykonuje niezależną kompilację każdej indywidualnej instrukcji (polecenia) programu źródłowego.

6) Kompilator kompilatorów. Tłumacz, który pobiera formalny opis języka programowania i generuje kompilator dla tego języka.

7) Debuguj. Eliminuje niektóre rodzaje błędów składniowych.

8) Mieszkaniec. Trwale rezyduje w pamięci głównej i jest dostępny dla ponowne użycie wiele zadań.

9) Opracowane samodzielnie. Napisany w tym samym języku, z którego prowadzona jest transmisja.

10) Uniwersalny. Na podstawie formalnego opisu składni i semantyki języka wejściowego. Komponentami takiego kompilatora są: jądro, programy ładujące składnię i semantykę.

Typy kompilacji :

1) Partia. Kompilowanie wielu modułów źródłowych w jednym elemencie zadania.

2) Linia po linii.

3) Warunkowe. Kompilacja, w której przetłumaczony tekst zależy od warunków określonych w programie źródłowym. Tak więc, w zależności od wartości jakiejś stałej, możesz włączyć lub wyłączyć tłumaczenie fragmentu tekstu programu.

Struktura kompilatora.

Proces kompilacji składa się z następujących kroków:

1) Analiza leksykalna. Na tym etapie sekwencja znaków w pliku źródłowym jest konwertowana na sekwencję tokenów.

2) Analiza składniowa (gramatyczna). Sekwencja tokenów jest przekształcana w drzewo analizy.

3) Analiza semantyczna. Drzewo parsowania jest przetwarzane w celu ustalenia jego semantyki (znaczenia) - na przykład powiązania identyfikatorów z ich deklaracjami, typami, sprawdzaniem zgodności, określaniem typów wyrażeń itp. Wynik jest zwykle nazywany „reprezentacją pośrednią/kodem” i może zostać rozszerzone o drzewo analizy, nowe drzewo, abstrakcyjny zestaw poleceń lub coś innego wygodnego do dalszego przetwarzania.

4) Optymalizacja. Zbędne konstrukcje są usuwane, a kod jest uproszczony przy zachowaniu jego znaczenia. Optymalizacja może odbywać się na różnych poziomach i etapach - na przykład nad kodem pośrednim lub nad końcowym kodem maszynowym.

5) Generowanie kodu. Z reprezentacji pośredniej generowany jest kod w języku docelowym.

W określonych implementacjach kompilatorów etapy te można rozdzielić lub połączyć w takiej czy innej formie.

Transmisja i łączenie.

Ważną cechą historyczną kompilatora, odzwierciedloną w jego nazwie (pol. kompiluj - składaj, komponuj), było to, że mógł on również wykonywać linkowanie (czyli zawierał dwie części - translator i linker). Wynika to z faktu, że oddzielna kompilacja i linkowanie jako odrębny etap asemblera pojawiły się znacznie później niż pojawienie się kompilatorów. W związku z tym zamiast terminu „kompilator” termin „tłumacz” jest czasami używany jako jego synonim: albo w dawnej literaturze, albo gdy chce się podkreślić jego zdolność do tłumaczenia programu na kod maszynowy (i vice versa, używają terminu „kompilator”, aby podkreślić możliwość złożenia z wielu plików jednego).

Tłumacze ustni.

Tłumacz (język programowania) -

1) Program lub narzędzie techniczne, które wykonuje interpretację.

2) Typ translatora, który wykonuje przetwarzanie i wykonywanie programu źródłowego lub zapytania w trybie operator po operatorze (polecenie po poleceniu) (w przeciwieństwie do kompilatora, który tłumaczy cały program bez jego wykonywania).

3) Program (czasami sprzętowy), który analizuje polecenia lub instrukcje programu i natychmiast je wykonuje.

4) Procesor języka, który analizuje program źródłowy wiersz po wierszu i jednocześnie wykonuje określone działania, a nie tworzy skompilowanego programu w języku maszynowym, który jest następnie wykonywany.

Typy tłumaczy ustnych.

Prosty interpreter analizuje i natychmiast wykonuje (sama interpretacja) program polecenie po poleceniu (lub wiersz po wierszu), gdy jego kod źródłowy dociera do wejścia interpretera. Zaletą tego podejścia jest natychmiastowa reakcja. Wadą jest to, że taki interpreter wykrywa błędy w tekście programu tylko wtedy, gdy próbuje wykonać polecenie (lub linię) z błędem.

Interpreter typu kompilator to system kompilatora, który tłumaczy kod źródłowy programu na reprezentację pośrednią, na przykład kod bajtowy lub p-kod, oraz sam interpreter, który wykonuje wynikowy kod pośredni (tzw. maszyna wirtualna). Zaletą takich systemów jest większa szybkość wykonywania programu (dzięki usunięciu analizy kodu źródłowego do osobnego, jednorazowego przebiegu oraz zminimalizowaniu tej analizy w interpreterze). Wady - większe zapotrzebowanie na zasoby i wymaganie poprawności kodu źródłowego. Jest używany w językach takich jak Java, PHP, Python, Perl (wykorzystywany jest kod bajtowy), REXX (wynik parsowania kodu źródłowego jest zapisywany), a także w różnych DBMS (wykorzystywany jest p-kod).

Jeśli interpreter typu kompilującego zostanie podzielony na komponenty, otrzymamy kompilator języka i prosty interpreter ze zminimalizowaną analizą kodu źródłowego. Co więcej, kod źródłowy takiego tłumacza nie musi mieć formacie tekstowym lub być kodem bajtowym, który rozumie tylko ten interpreter, może to być kod maszynowy jakiejś istniejącej platformy sprzętowej. Np, wirtualne maszyny takie jak QEMU, Bochs, VMware zawierają interpretery kodu maszynowego dla procesorów z rodziny x86.

Niektóre interpretery (na przykład Lisp, Scheme, Python, BASIC i inne) mogą pracować w trybie dialogowym lub w tak zwanej pętli read-compute-print (read-eval-printloop, REPL). W tym trybie interpreter czyta pełną konstrukcję językową (na przykład s-expression w Lispie), wykonuje ją, drukuje wyniki, a następnie czeka, aż użytkownik wprowadzi następną konstrukcję.

Unikalny jest język Forth, który może pracować zarówno w trybie interpretacji danych wejściowych, jak i kompilacji, umożliwiając przełączanie się między tymi trybami w dowolnym momencie, zarówno podczas tłumaczenia kodu źródłowego, jak i podczas działania programów.

Należy również zauważyć, że tryby interpretacji można znaleźć nie tylko w oprogramowaniu, ale także w sprzęt komputerowy. Tak więc wiele mikroprocesorów interpretuje kod maszynowy za pomocą wbudowanych mikroprogramów, a procesory z rodziny x86, począwszy od Pentium (na przykład na architekturze Intel P6), podczas wykonywania kodu maszynowego wstępnie tłumaczą go na format wewnętrzny (na sekwencję mikrooperacje).

Algorytm prostego interpretera :

2. przeanalizować instrukcję i określić odpowiednie działania;

3. podjąć odpowiednie działania;

4. jeżeli warunek zakończenia programu nie został osiągnięty, przeczytaj następną instrukcję i przejdź do punktu 2.

Wady i zalety tłumaczy.

1) Większa przenośność interpretowanych programów - program będzie działał na dowolnej platformie, która posiada odpowiedniego tłumacza.

2) Z reguły bardziej zaawansowane i wizualne sposoby diagnozowania błędów w kodach źródłowych.

3) Uproszczenie debugowania kodów źródłowych programów.

4) Mniejsze rozmiary kodu w porównaniu z kodem maszynowym uzyskanym po konwencjonalnych kompilatorach.

1) Interpretowany program nie może być wykonywany oddzielnie bez programu interpretującego. Sam tłumacz może być bardzo zwarty.

2) Zinterpretowany program działa wolniej, ponieważ pośrednia analiza kodu źródłowego i zaplanowanie jego wykonania wymaga dodatkowego czasu w porównaniu z bezpośrednim wykonaniem kodu maszynowego, do którego kod źródłowy mógłby zostać skompilowany.

3) Praktycznie nie ma optymalizacji kodu, co prowadzi do dodatkowych strat w szybkości interpretowanych programów.

łącznik.

Linker (również linker, linker) to program wykonujący linkowanie - pobiera jeden lub więcej modułów obiektowych jako dane wejściowe i składa z nich wykonywalny moduł.

Aby połączyć moduły, linker używa tabel nazw utworzonych przez kompilator w każdym z modułów obiektowych. Takie nazwy mogą być dwojakiego rodzaju:

1) Nazwy zdefiniowane lub wyeksportowane - funkcje i zmienne zdefiniowane w tym module i przewidziane do wykorzystania przez inne moduły.

2) Nazwy niezdefiniowane lub zaimportowane - funkcje i zmienne, do których moduł się odwołuje, ale sam ich nie definiuje.

Zadaniem linkera jest rozwiązanie odwołań do niezdefiniowanych nazw w każdym module. Dla każdej zaimportowanej nazwy jej definicja znajduje się w innych modułach, wzmianka o nazwie jest zastępowana jej adresem.

Konsolidator zwykle nie sprawdza typu ani liczby parametrów procedury i funkcji. Jeśli konieczne jest łączenie modułów obiektowych programów napisanych w językach o silnej typizacji, to przed uruchomieniem konsolidatora należy przeprowadzić niezbędne kontrole za pomocą dodatkowego narzędzia.

monter.

Asembler (z angielskiego asembler - asembler) - program komputerowy, kompilator kodu źródłowego programu napisanego w asemblerze do programu w języku maszynowym.

Podobnie jak sam język (asembler), asemblery są zwykle specyficzne dla określonej architektury, systemu operacyjnego i wariantu składni języka. Jednocześnie istnieją asemblery wieloplatformowe lub całkowicie uniwersalne (a dokładniej ograniczone-uniwersalne, ponieważ nie da się pisać programów niezależnych od sprzętu w języku niskiego poziomu), które mogą działać na różnych platformach i systemach operacyjnych. Wśród tych ostatnich można również wyróżnić grupę cross-assemblerów zdolnych do asemblacji kodu maszynowego i modułów wykonywalnych (plików) dla innych architektur i systemów operacyjnych.

Montaż może nie być pierwszym ani ostatnim krokiem na drodze do uzyskania wykonywalnego modułu programu. Tak więc wiele kompilatorów z języków programowania wysokiego poziomu generuje wynik w postaci programu w języku asemblera, który jest dalej przetwarzany przez asembler. Również wynikiem asemblera może nie być plik wykonywalny, ale moduł obiektowy zawierający oddzielne i niezwiązane części kodu maszynowego i danych programu, z którego (lub z kilku modułów obiektowych) w przyszłości za pomocą programu konsolidującego (" linker”) plik wykonywalny.

Debuger lub debugger to moduł środowiska programistycznego lub oddzielna aplikacja przeznaczona do wyszukiwania błędów w programie. Debuger umożliwia przechodzenie przez śledzenie, monitorowanie, ustawianie lub zmianę wartości zmiennych podczas wykonywania programu, ustawianie i usuwanie punktów przerwania lub warunków przerwania i tak dalej.

Lista debuggerów.

1) AQtime to komercyjny debugger dla aplikacji zbudowanych dla .NET Framework w wersji 1.0, 1.1, 2.0, 3.0, 3.5 (w tym aplikacji ASP.NET), a także dla aplikacji Windows 32-bitowych i 64-bitowych.

2) DTrace to platforma dynamicznego śledzenia dla systemów Solaris, OpenSolaris, FreeBSD, Mac OS X i QNX.

3) Electric Fence - debugger pamięci.

4) GNU Debugger (GDB) to debugger programu z projektu GNU.

5) IDA to potężny deasembler i debugger niskiego poziomu dla systemów operacyjnych Windows i Linux.

6) Microsoft Visual Studio to środowisko programistyczne zawierające narzędzia do debugowania firmy Microsoft Corporation.

7) OllyDbg to darmowy debugger niskiego poziomu dla systemów operacyjnych z rodziny Windows.

8) SoftICE jest debuggerem niskiego poziomu dla systemów operacyjnych z rodziny Windows.

9) Sun Studio to środowisko programistyczne zawierające debugger dbx dla systemów operacyjnych Solaris i Linux firmy Sun Microsystems Corporation.

10) Dr. Watson to standardowy debugger Windows, który umożliwia tworzenie zrzutów pamięci.

11) TotalView jest jednym z komercyjnych debuggerów dla systemu UNIX.

12) WinDbg to darmowy debugger firmy Microsoft Corporation.

Generator dokumentacji – program lub pakiet oprogramowania, który umożliwia uzyskanie dokumentacji przeznaczonej dla programistów (dokumentacja API) i/lub dla użytkowników końcowych systemu, według specjalnie skomentowanego kodu źródłowego oraz w niektórych przypadkach modułów wykonywalnych (uzyskanych z wyjście kompilatora).

Zwykle generator analizuje kod źródłowy programu, podkreślając konstrukcje składniowe odpowiadające istotnym obiektom programu (typy, klasy i ich składowe/właściwości/metody, procedury/funkcje itp.). W analizie wykorzystywane są również metainformacje o obiektach programu, prezentowane w formie komentarzy dokumentacyjnych. Na podstawie wszystkich zebranych informacji powstaje gotowa dokumentacja, zwykle w jednym z ogólnie przyjętych formatów - HTML, HTMLHelp, PDF, RTF i inne.

Dokumentowanie komentarzy.

Komentarz do dokumentu to specjalnie sformatowany komentarz do obiektu programu, przeznaczony do użycia przez określony generator dokumentacji. Składnia konstrukcji używanych w komentarzach do dokumentacji zależy od używanego generatora dokumentacji.

Komentarze do dokumentacji mogą zawierać informacje o autorze kodu, opisywać przeznaczenie obiektu programu, znaczenie parametrów wejściowych i wyjściowych - dla funkcji/procedury, przykłady użycia, możliwe wyjątki, cechy implementacji.

Komentarze do dokumentacji są zwykle formatowane jako wielowierszowe komentarze w stylu języka C. W każdym przypadku komentarz musi znajdować się przed udokumentowanym elementem. Pierwszym znakiem w komentarzu (i na początku linii komentarza) musi być *. Bloki są oddzielone pustymi liniami.

3. Visual Basic dla aplikacji

system operacyjny oprogramowania

3.1 Istota VisualBasic i jego krótka historia

Microsoft Visual Basic (VB) to narzędzie programistyczne opracowane przez firmę Microsoft, które obejmuje język programowania i środowisko programistyczne. Język Visual Basic odziedziczył ducha, styl i częściowo składnię swojego przodka, języka BASIC, który ma wiele dialektów. Jednocześnie Visual Basic łączy procedury i elementy języków programowania obiektowego i komponentowego. Środowisko programistyczne VB zawiera narzędzia do wizualnego projektowania interfejsu użytkownika. (patrz tabela).

Visual Basic (kluczowe funkcje)

Visual Basic jest brany pod uwagę dobry środek szybkiego rozwoju prototypów programów, do tworzenia aplikacji bazodanowych, a ogólnie do komponentowej metody tworzenia programów działających pod systemami operacyjnymi z rodziny Microsoft Windows.

W procesie ewolucji Visual Basic przeszedł szereg kolejnych etapów, które pozwoliły mu stać się jednym z najpopularniejszych obecnie języków programowania. A więc ewolucja VisualBasic poszedł w następujący sposób:

1. Maj 1991 — wydanie Visual Basic 1.0 dla Microsoft Windows. Za podstawę języka przyjęto składnię QBasic, a innowacją, która przyniosła wówczas językowi dużą popularność, była zasada komunikacji między językiem a interfejsem graficznym.

2. Wrzesień 1992 — zostaje wydany Visual Basic 1.0 dla DOS. Nie był w pełni kompatybilny z wersją VB dla systemu Windows, ponieważ była to kolejna wersja QuickBASIC i działała w trybie tekstowym na ekranie.

3. Listopad 1992 — wydanie Visual Basic 2.0. Środowisko programistyczne stało się łatwiejsze w użyciu i działało szybciej.

4. lato 1993 — wydano Visual Basic 3.0 w wersjach Standard i Professional. Dodatkowo do pakietu dodano silnik do pracy z bazami danych Access.

5. Sierpień 1995 - Visual Basic 4.0 - wersja, która mogła tworzyć zarówno 32-bitowe, jak i 16-bitowe programy Windows.

6. Luty 1997 - Visual Basic 5.0 - począwszy od tej wersji, wraz z konwencjonalnymi aplikacjami stało się możliwe tworzenie komponentów COM.

7. W połowie 1998 roku wydano Visual Basic 6.0. Od tego czasu firma Microsoft drastycznie zmieniła swoje zasady dotyczące języka podstawowego. Zamiast rozwijać Visual Basic, stworzono zupełnie nowy język Visual Basic .NET.

8. W 2005 roku została wydana nowa wersja Visual Basic, dołączona do Visual Studio. Była zadowolona z nowego interfejsu i funkcji. Język jest oparty na Visual Basic.NET.

9. Pod koniec 2007 roku Microsoft wydał Nowa wersja Visual Basic - Visual Basic 2008, który również został oparty na Visual Basic.NET.

W oparciu o funkcjonalność i specyfikę aplikacji można wyróżnić następujące odmiany tego programu:

1. Klasyczny Visual Basic (wersje 5-6) Język ten jest bardzo silnie powiązany ze swoim środowiskiem programistycznym oraz systemem operacyjnym Windows, będąc wyłącznie narzędziem do pisania aplikacji Windows

2. VisualBasicforApplications (VBA) Jest to narzędzie programistyczne, prawie nie różniące się od klasycznego Visual Basic, które jest przeznaczone do pisania makr i innych aplikacji pod konkretne aplikacje. Najpopularniejszy ze względu na zastosowanie w Pakiet Microsoftu biuro. Powszechne stosowanie języka Visual Basic for Applications w połączeniu z początkowym lekceważeniem kwestii bezpieczeństwa doprowadziło do rozpowszechnienia makrowirusów.

3. VisualBasicScriptingEdition (VBScript) Język skryptowy, który jest nieco okrojoną wersją zwykłego języka Visual Basic. Używany głównie do automatyzacji administracji systemy Windows oraz do tworzenia stron i skryptów ASP dla programu Internet Explorer.

3.2 Interfejs VisualBasicforApplication, główne funkcje i właściwości

Tworząc VisualBasicforApplication, Microsoft Corporation postawiła sobie za główne zadanie tworzenie wsparcie instrumentalne, dostępne dla użytkowników niebędących zawodowymi programistami, ale jednocześnie posiadających wystarczające kwalifikacje do tworzenia i projektowania aplikacji oraz aplikacji opartych na pakiecie Microsoft Office. Właśnie w celu rozwiązania tego problemu programiści stworzyli VBA, wyposażając go w szereg unikalnych funkcji. Jednym z nich, najcenniejszym dla użytkownika, jest możliwość tworzenia i wykorzystywania niestandardowych (konfigurowalnych) okna dialogowe, dodanie obiektu UserForm do projektu, a także wygodny interfejs użytkownika.

Interfejs programu VisualBasicforApplication składa się z kompleksu różne okna oraz zakładki wykorzystywane podczas projektowania tworzonej aplikacji, z których główne to:

1) okno Projekt (Rys. 2), w którym wyświetlana jest struktura tworzonego projektu.

2) okno Kod programu (rys. 3), w którym wyświetlany jest kod programu tworzonego projektu oraz umożliwia napisanie programu klasyczny sposób za pomocą wbudowanego edytora słów kodowych, których w VBA jest ponad 16 tysięcy. Ponadto to okno umożliwia edycję kodu i sprawdzenie go pod kątem błędów.

3) zakładka Właściwości (rys. 4), na której wyświetlane są parametry ustawione dla wskazanego obiektu oraz możliwa jest zmiana określonych ustawień.

Poruszając się pomiędzy oknami i zakładkami, użytkownik może w łatwy sposób dostosować tworzony projekt.

Za pomocą tworzonych przez użytkownika formularzy VBA można tworzyć niestandardowe okna dialogowe do wyświetlania danych lub odbierania wartości od użytkownika programu w sposób najlepiej odpowiadający potrzebom programu. Można na przykład utworzyć quiz, wyświetlić okno dialogowe z pytaniami wielokrotnego wyboru i pozwolić użytkownikowi na wybranie jednej z odpowiedzi, którą uważa za poprawną.

Niestandardowe okna dialogowe pozwalają programowi na interakcję z użytkownikiem w najbardziej złożony sposób i dostarczają różnorodnych danych wejściowych i wyjściowych.

Niestandardowe okno dialogowe jest tworzone w języku VBA przez dodanie obiektu UserForm do projektu. Ten obiekt jest pustym oknem dialogowym; ma pasek tytułu i przycisk zamykania, ale brakuje mu innych elementów sterujących. Niestandardowe okno dialogowe jest tworzone przez dodanie kontrolek do obiektu UserForm i jest zwykle nazywane po prostu formularzem (rysunek 5).

Każdy obiekt UserForm ma właściwości, metody i zdarzenia, które dziedziczy z klasy obiektów UserForm.

Każdy obiekt UserForm zawiera również moduł klasy, do którego użytkownik dodaje własne metody i właściwości lub zapisuje procedury zdarzeń dla tego formularza.

Możliwość stworzenia własnego interfejsu niezależnego od środowiska programu aplikacyjnego, takiego jak Excel, za pomocą formularzy ekranowych jest jedną z najcenniejszych funkcji VBA.

Formularze ekranowe to okna o różnym przeznaczeniu i typach, tworzone przez użytkownika na potrzeby ich zastosowania. Zawierają elementy sterujące, które umożliwiają użytkownikowi udostępnianie informacji aplikacji.

VBA wykorzystuje wygenerowany projekt graficzny formularza — z ustawieniami właściwości i elementów sterujących formularza — w celu uzyskania wszystkich informacji potrzebnych do wyświetlenia okna dialogowego: rozmiaru okna dialogowego, elementów sterujących w nim zawartych itd. W rezultacie VBA pozwala wyświetlić formularz okna dialogowego z pojedynczą instrukcją.

Aby wyświetlić niestandardowe okno dialogowe, użyj metody Show obiektu UserForm. Jeśli formularz nie jest aktualnie ładowany do pamięci, metoda Show ładuje formularz i wyświetla go. Jeśli formularz jest już załadowany, metoda Show po prostu go wyświetla.

Wyświetlenie pojedynczego okna dialogowego w celu wykonania zadania zwykle nie wystarcza. Prawie zawsze konieczne jest określenie stanu elementów sterujących okna dialogowego, aby dowiedzieć się, jakie dane lub opcje wybrał użytkownik. Na przykład, jeśli okno dialogowe jest używane do zapytania użytkownika, według których kolumn i wierszy ma być sortowany arkusz, musisz być w stanie dowiedzieć się, jakie wartości wprowadził użytkownik po zamknięciu okna dialogowego i przed operacją sortowania faktycznie zaczyna.

W innych przypadkach możesz chcieć dynamicznie zmieniać tytuły przycisków (lub innych kontrolek) w oknie dialogowym, dynamicznie aktualizować etykietę lub pole skojarzone z pokrętłem lub dynamicznie sprawdzać poprawność danych wprowadzonych do okna dialogowego.

W VBA możliwe jest znaczne rozszerzenie zestawu funkcji wbudowanych w standardową aplikację, taką jak Microsoft Excel, a także tworzenie funkcji, których wartości zależą od określonych warunków i zdarzeń.

VBA umożliwia programowanie funkcji tablicowych. Aby utworzyć osobny arkusz dla modułu programu, dostępna jest zakładka Wstaw moduł z menu Wizualny, polecenie Moduł z menu Wstaw makro. Następnie pojawi się nowy arkusz roboczy „Modele1”. W module programu należy opisać funkcję w języku VBA. W oknie modułu programu można pracować jak w oknie małego edytora tekstu.

Funkcje są osadzane za pomocą polecenia Przeglądarka obiektów z menu Widok. Funkcje zdefiniowane przez użytkownika traktowane są w programie jako niezależne obiekty. VBA posiada pokaźny zestaw wbudowanych funkcji, dzielących je na typy.

Visual Basic umożliwia rezerwowanie zmiennych, z rozmiarem lub bez, pracę z różnymi typami danych, używanie stałych, pracę z operatorami i funkcjami matematycznymi oraz używanie dodatkowych operatorów. Przewidziano wykorzystanie operatorów pętli For Next, Do, obiektów typu „timer” (niewidoczny w programie stoper). Dokładność ustawienia czasu w programie to 1 milisekunda, czyli 1/1000 sek. Działający timer jest stale uruchomiony - tj. odpowiednia procedura przerwania jest wykonywana po określonym przedziale czasu - do momentu zatrzymania stopera lub wyłączenia programu przez użytkownika.

W języku VBA można ustawić dowolne właściwości formularza, w tym tytuł, rozmiar, typ ramki, kolor tła i znaków, czcionkę tekstu i obraz tła.

Podsumowując wszystkie funkcje programu, Visual Basic forApplication umożliwia:

1) praca z kontrolami

Zalety :

1. Wysoka szybkość tworzenia aplikacji GUI dla MS Windows.

2. Prosta składnia, która pozwala bardzo szybko nauczyć się języka.

3. Możliwość kompilacji zarówno do kodu maszynowego, jak i do P-kodu (do wyboru programisty). W trybie debugowania program jest zawsze (niezależnie od wyboru) kompilowany do kodu P, co pozwala na wstrzymanie wykonywania programu, dokonanie istotnych zmian w kodzie źródłowym, a następnie kontynuację wykonywania: pełną rekompilację i restart program nie jest wymagany.

4. Ochrona przed błędami związanymi z używaniem wskaźników i dostępem do pamięci. Ten aspekt sprawia, że ​​aplikacje Visual Basic są bardziej stabilne, ale jest również przedmiotem krytyki.

5. Możliwość wykorzystania większości funkcji WinAPI w celu rozszerzenia funkcjonalności aplikacji. Ten problem został najpełniej zbadany przez Dana Applemana, który napisał książkę Visual Basic Programmer's Guide to the Win32 API.

Krytyka :

1. Często krytykowane są takie aspekty Visual Basic jak możliwość wyłączenia sposobu śledzenia deklarowanych zmiennych, możliwość niejawnej konwersji zmiennych, obecność typu danych Variant. Zdaniem krytyków umożliwia to pisanie wyjątkowo złego kodu. Z drugiej strony można to uznać za plus, ponieważ VB nie narzuca „dobrego stylu”, ale daje programiście większą swobodę.

2. Brak wskaźników, niski poziom dostępu do pamięci, inserty ASM. Chociaż paradygmat Visual Basic pozwala przeciętnemu programiście VB obejść się bez tego wszystkiego, te rzeczy również są często krytykowane. I chociaż przy użyciu nieudokumentowanych funkcji i pewnych sztuczek wszystko to można zaimplementować w VB (na przykład używając funkcji do uzyskiwania wskaźników VarPtr(), StrPtr() i ObjPtr()); korzystanie z tych sztuczek jest znacznie trudniejsze niż np. w C++.

Warto jednak zauważyć, że wszystkie wady języka wynikają z jego głównej zalety – prostoty tworzenia interfejsu graficznego. Dlatego wielu programistów używa języka Visual Basic do tworzenia interfejsu użytkownika, a funkcjonalność programu jest realizowana jako biblioteki dołączane dynamicznie (DLL) napisane w innym języku (najczęściej C++).

4. Część praktyczna

4.1 Sformułowanie problemu

Narysuj schemat blokowy i napisz program w Pascalu. Oblicz wartość wewnętrzną papierów wartościowych. Wewnętrzna wartość składnika aktywów jest określana na podstawie przyszłego strumienia dochodów z tego składnika aktywów

pv to bieżąca wartość wewnętrzna akcji

c to oczekiwany zwrot z danego składnika aktywów

r to stopa zwrotu oczekiwana przez inwestora za zwrot przy odpowiednim poziomie ryzyka

n to czynnik czasu (w miesiącach).

Przeprowadź analizę rynku i posortuj wynik w porządku rosnącym otrzymanych danych.

4.2 Tekst programu w Pascalu

pv: tablica rzeczywistych;

writeLn('Podaj oczekiwany dochód z ',i,'tego aktywa c:');

writeLn('Podaj stopę zwrotu oczekiwaną przez inwestora r:');

pv:=c/exp(ln(1+r)*i);

writeLn('bieżąca wartość wewnętrzna składnika aktywów wynosi', pv[i]:1:3);

writeLn('Wewnętrzna wartość zasobu wynosi', s);

dla j:=1 do 4 zrób

jeśli pv[j] > pv to

writeLn('Wartość aktywów posortowana rosnąco');

dla i:=1 do 5 zrobić

writeLn(pv[i]:1:3);

4.3 Przypadek testowy

4.4 Wynik wykonania programu na przypadku testowym

Wniosek

Podsumowując powyższe, należy zauważyć, że oprogramowanie narzędziowe jest jednym z rodzajów oprogramowania, mającym swoje ogólne zadania i funkcje.

Jednak będąc wysoce wyspecjalizowanym rodzajem oprogramowania, ma pewien zestaw unikalnych właściwości i funkcji, które zapewniają rozwiązanie jego nieodłącznych zadań.

Należy zwrócić uwagę na wyłaniającą się tendencję do upraszczania procesu programowania i tworzenia pewnej podklasy - półprofesjonalnego programowania do zastosowań użytkowych.

To właśnie pozwoli doświadczonemu użytkownikowi komputera, ale nie profesjonalny programista, tworzyć aplikacje i niewielkie pliki wykonywalne w środowisku Microsoft Office, wykorzystywane głównie do celów księgowych i zarządzania dokumentami w małych firmach.

W tym celu firma Microsoft opracowała pakiet oprogramowania VisualBasicforApplication, który ułatwia programowanie i umożliwia użytkownikom programowanie aplikacji, a nie programistom. Ta okazja została zrealizowana przede wszystkim poprzez utworzenie sekcji programu – „Edytor skryptów” oraz możliwość zapisywania i wykonywania „Makr” jako osobnego typu graficznie programowalnych modułów. Zaimplementowano możliwość tworzenia aplikacji z interfejsem graficznym dla MS Windows. Zaletą tego typu oprogramowania narzędziowego jest również prosta składnia, która pozwala szybko nauczyć się języka i używać go do programowania we wszystkich standardowych aplikacjach pakietu Microsoft Office.

Dlatego trudno przecenić znaczenie oprzyrządowania w ogóle, a VisualBasicforApplication w szczególności, choć mankamenty, o których mowa powyżej, również mają miejsce. Ale to nawet nie są negatywne strony produktu, a raczej wytyczne do dalszego doskonalenia oprzyrządowania w osobie VisualBasicforApplication.

1. Języki algorytmiczne czasu rzeczywistego / wyd. Yanga S./ 2004

2. PC Magazine wydanie rosyjskie №2 2008 Komputer dzisiaj.

3. Informatyka. / wyd. Mohylew A.V., Pak N.I., Henner E.K. / - M.: ACADEMIA, 2000.

4. Informatyka i technologia informacyjna: Podręcznik / wyd. Romanova D.Yu. / LLC „Wydawnictwo„ Eksmo ”, 2007.

5. Najnowsza encyklopedia komputera osobistego /Wyd. Leontieva V. / Moskwa, 1999. – 271 s.

6. Nowe języki programowania i trendy w ich rozwoju / wyd. Uszkowa V. / 2001

7. Pedagogika / wyd. Pidkasistogo P.I. / - M .: Towarzystwo Pedagogiczne Rosji, 2000.

8. Programowanie dla Microsoft Excel 2000 w 21 dni. / wyd. Harisa M./ - M.: Williams, 2000.

9. Simonovich S. Informatyka: kurs podstawowy. proc. dla uniwersytetów. Petersburg, Piotr, 2002

10. Z Excelem 2000 nie ma problemu. / wyd. Kowalski/- M.: Binom, 2000.

11. „Efektywna praca w systemie Windows 98” /wyd. Stinson K. / 2000. – 247 s.

12. Języki programowania. kn.5 / wyd. Vaulina AS / 2003

13. Języki programowania: rozwój i implementacja / wyd. Terrence P. / 2001

14. Elektroniczny podręcznik do informatyki. Aleksiejew EG http://www.stf.mrsu.ru/economic/lib/Informatics/text/Progr.html\

Oprogramowanie narzędziowe jest przeznaczony do użytku w projektowaniu, rozwijaniu i utrzymywaniu programów komputerowych. Narzędzia programowe obejmują następujące typy programów:

Kompilatory

Tłumacze

Asemblery

Tłumacze ustni

Wyrazy łączące

Debugery

Narzędzia do automatycznego testowania programów

Generatory dokumentacji

Zestaw deweloperski (SDK)

Systemy kontroli wersji

Systemy programistyczne i zintegrowane środowiska programistyczne dla programów

Systemy Automatyzacji Programowania (CASE)

Kompilator to narzędzie programowe do tłumaczenia programów napisanych w języku programowania na programy reprezentowane w binarnych kodach maszynowych. Kompilatory dzielą się na trzy typy - kompilatory, asemblery i interpretery.

Tłumacz jest kompilatorem w pełni tłumaczy programy w dowolnym języku programowania na kody maszynowe lub na tzw. kod obiektowy. Powstały program w kodzie maszynowym można później przekonwertować na wykonywalny moduł, do którego można go załadować Baran i uruchamiane przez procesor. Typ tłumacza to monter - program, który tłumaczy tekst programu napisany w języku zorientowanym maszynowo ("mnemocode" lub "język asemblera") na kod binarny. Pojęcie asemblera jest często kojarzone bezpośrednio z językiem zorientowanym maszynowo. Dlatego termin ten jest czasami używany w znaczeniu języka programowania na poziomie maszyny.

Interpretator- jest to kompilator, który linia po linii (lub jedno polecenie) tłumaczy program źródłowy w języku programowania na kody binarne i natychmiast przekazuje ten kod binarny do procesora w celu wykonania.

łącznik- program, który produkuje układ wykonywalny lub kod rozruchowy - pobiera jeden lub więcej modułów obiektowych jako dane wejściowe i składa na ich podstawie jeden moduł wykonywalny, który może zostać załadowany do pamięci i uruchomiony w celu wykonania przez procesor.

Debuger- z reguły jest częścią środowiska programistycznego lub osobną aplikacją przeznaczoną do wyszukiwania błędów w programie. Debuger umożliwia przechodzenie przez program, monitorowanie, ustawianie lub zmianę wartości zmiennych podczas wykonywania programu, ustawianie i usuwanie punktów przerwania lub warunków przerwania i tak dalej.

Narzędzia do automatycznego testowania programówmoduły oprogramowania, pozwalając na tworzenie zautomatyzowanych testów przy minimalnym udziale człowieka i automatyczne wydawanie sekwencji testowych na dane wejściowe, śledzenie reakcji testowanego programu. Z reguły takie narzędzia testują programy pod kątem szybkości, niezawodności przy dużych przepływach danych - jest to tak zwane „testowanie obciążenia”. Na przykład sprawdzanie programów o dużym ruchu sieciowym itp. Istnieją jednak narzędzia do testowania funkcjonalności, takie jak narzędzia przeznaczone do sprawdzania, czy aplikacja spełnia wymagania biznesowe.

Generator dokumentacji- program lub pakiet oprogramowania umożliwiający uzyskanie dokumentacji przeznaczonej dla programistów (dokumentacja API) i/lub dla użytkowników końcowych systemu, na specjalnie skomentowanym kodzie źródłowym oraz w niektórych przypadkach na modułach wykonywalnych (uzyskiwanych na wyjściu kompilator). Zwykle generator analizuje kod źródłowy programu, podkreślając konstrukcje składniowe odpowiadające istotnym obiektom programu (typy, klasy i ich składowe/właściwości/metody, procedury/funkcje itp.). W analizie wykorzystywane są również metainformacje o obiektach programu, prezentowane w formularzu komentarze dokumentalne. Na podstawie wszystkich zebranych informacji tworzona jest gotowa dokumentacja z reguły w jednym z ogólnie przyjętych formatów - HTML, HTMLHelp, PDF, RTF i innych.

Zestaw deweloperski (SDK, Zestaw programistyczny) lub „devkit” - zestaw programów i bibliotek podprogramów, który umożliwia specjalistom ds. oprogramowania tworzenie aplikacji dla określonego pakietu oprogramowania, oprogramowania narzędzi programistycznych, platformy sprzętowej, systemu komputerowego, konsol do gier wideo, systemów operacyjnych i innych platform. Programista zwykle uzyskuje SDK bezpośrednio od twórcy docelowej technologii lub systemu. Często pakiet SDK jest dystrybuowany przez Internet. Wiele SDK jest dystrybuowanych bezpłatnie, aby zachęcić programistów do korzystania z danej technologii lub platformy.

System kontroli wersji (System kontroli wersji, VCS Lub System kontroli wersji) - oprogramowanie ułatwiające pracę ze zmieniającymi się informacjami. System kontroli wersji umożliwia przechowywanie kilku wersji tego samego dokumentu, w razie potrzeby powrót do wcześniejszych wersji, ustalenie, kto i kiedy dokonał tej lub innej zmiany i wiele więcej. Takie systemy są najczęściej stosowane w tworzeniu oprogramowania, do przechowywania kodów źródłowych tworzonego programu. Z powodzeniem można je jednak zastosować w innych obszarach, w których przetwarzana jest duża liczba ciągle zmieniających się dokumentów elektronicznych.

Zintegrowane środowisko programistyczne (IDE) (Zintegrowane środowisko programistyczne, IDE) to system oprogramowania używany do tworzenia oprogramowania. Zazwyczaj środowisko programistyczne obejmuje edytor tekstu, kompilator i/lub interpreter, narzędzia do automatyzacji kompilacji i debugger. Czasami zawiera również narzędzia do integracji z systemami kontroli wersji oraz różne narzędzia upraszczające budowę graficznego interfejsu użytkownika. Zawiera również wiele nowoczesnych środowisk programistycznych przeglądarka klas, inspektor obiektów I diagram hierarchii klas- do użytku w programowaniu zorientowanym obiektowo. Chociaż istnieją środowiska programistyczne zaprojektowane dla wielu języków – takie jak Eclipse, NetBeans, Embarcadero RAD Studio czy Microsoft Visual Studio – zazwyczaj środowisko programistyczne jest przeznaczone dla jednego konkretnego języka programowania – takiego jak Visual Basic, Delphi, Dev-C++. Szczególnym przypadkiem ISR są wizualne środowiska programistyczne, które obejmują możliwość wizualnej edycji interfejsu programu. Czasami wywoływany jest ISR "system programowania" , chociaż w większości przypadków WBS obejmuje rozszerzony zakres funkcji i możliwości.

Programowanie systemów automatyki(Inżynieria systemów wspomagana komputerowo, SPRAWA ) to pakiet oprogramowania, który automatyzuje cały proces technologiczny analizy, projektowania, rozwoju, kodowania, debugowania i konserwacji złożonych systemów oprogramowania. Główną zaletą technologii CASE jest wspomaganie pracy zbiorowej nad projektem dzięki możliwości pracy w lokalnej i globalnej sieci programistów, eksport (import) dowolnych fragmentów projektu, zorganizowane zarządzanie programem. Z reguły systemy CASE obsługują automatyczne generowanie kodu programów - tworzenie szkieletu przez program systemowy i tworzenie kompletnego produktu wraz z dokumentacją systemu.

Oprogramowanie

Ta kategoria obejmuje programy kompleksy oprogramowania oraz systemy oprogramowania, za pomocą których rozwiązywane są określone zadania użytkownika w celach produkcyjnych, kreatywnych, rozrywkowych, edukacyjnych lub innych. Oprogramowanie użytkowe dzieli się na następujące typy:

Programy zorientowane na problem

Systemy projektowanie wspomagane komputerowo(CHAM)

Oprogramowanie dla zautomatyzowanych systemów sterowania

Programy ogólnego przeznaczenia

systemy biurowe

Inteligentne systemy

Systemy oprogramowania multimedia

Systemy DTP

Programy zorientowane na problem przeznaczone do rozwiązywania stosowanych problemów związanych z ludzką działalnością produkcyjną, na przykład:

programy księgowe;

programy działalności finansowej;

programy zarządzania personelem;

programy zarządzania przedsiębiorstwem;

Informacje bankowe i zautomatyzowane systemy;

Zautomatyzowane stanowiska pracy w przedsiębiorstwie;

Systemy projektowania wspomaganego komputerowo (System CAD - System komputerowego wspomagania projektowania ) mają na celu wspomaganie pracy projektantów, technologów, elektryków i elektroników, architektów oraz innych specjalistów związanych z opracowywaniem rysunków, schematów, modeli, modelowaniem graficznym, projektowaniem. Systemy tej klasy są bardzo wymagające pod względem sprzętu komputerowego, szybkości, pamięci. Niezbędne jest posiadanie bibliotek wbudowanych funkcji, obiektów, interfejsów z systemami graficznymi i bazami danych.

W CAD zwyczajowo wyróżnia się siedem rodzajów zabezpieczeń:

Techniczny(TO), w tym różny sprzęt (komputery, urządzenia peryferyjne, sprzęt do przełączania sieci, linie komunikacyjne, narzędzia pomiarowe);

Matematyczny(MO), łącząc metody matematyczne, modele i algorytmy w celu wykonania projektu;

Oprogramowanie(oprogramowanie) reprezentowane przez programy komputerowe CAD;

informacyjny(IO), składający się z baz danych (DB), systemów zarządzania bazami danych (DBMS), a także innych danych wykorzystywanych w projektowaniu. Cały zbiór danych wykorzystywanych w projekcie nazywany jest zasobem informacyjnym CAD, a baza danych wraz z DBMS nazywana jest bankiem danych (BnD);

Lingwistyczny(LO), wyrażone językami komunikacji między projektantami a komputerami, językami programowania i językami wymiany danych między środkami technicznymi CAD;

metodyczny(MetO), który obejmuje różne techniki projektowania, czasami oprogramowanie jest również określane jako MetO;

Organizacyjny(OO), reprezentowane przez tabele personelu, opisy stanowisk pracy oraz inne dokumenty regulujące pracę przedsiębiorstwa projektowego.

Ze względu na zakres można wyróżnić następujące grupy CAD:

CAD do użytku w przemyśle inżynierii ogólnej. Często określa się je mianem mechanicznych systemów CAD lub MCAD (Mechanical CAD);

CAD dla elektroniki radiowej. Ich nazwy to systemy ECAD (Electronic CAD) lub EDA (Electronic Design Automation).

CAD w dziedzinie architektury i budownictwa.

Ponadto znana jest duża liczba bardziej wyspecjalizowanych systemów CAD, albo zaliczonych do wskazanych grup, albo reprezentujących samodzielną gałąź w klasyfikacji. Przykładami takich systemów są CAD dla dużych układów scalonych (LSI); CAD samolotu; CAD dla maszyn elektrycznych itp.

Przez zamierzony cel rozróżniać podsystemy CAD lub CAD, które zapewniają różne aspekty projektowania. Tak więc systemy CAE / CAD / CAM pojawiają się jako część MCAD:

Projektowanie funkcjonalne CAD, inaczej systemy CAD-F lub CAE (Computer Aided Engineering).

Projektowanie CAD dla inżynierii ogólnej - CAD-K, często nazywane po prostu systemami CAD;

Technologiczne systemy CAD dla ogólnej budowy maszyn – CAD-T, inaczej zwane zautomatyzowanymi systemami do technologicznego przygotowania produkcji ASTPP lub systemy CAM (Computer Aided Manufacturing).

Zautomatyzowany system sterowania (ACS)- kompleks sprzętu i oprogramowania przeznaczonego do sterowania różnymi procesami w ramach procesu technologicznego, produkcji, przedsiębiorstwa. ACS znajdują zastosowanie w różnych gałęziach przemysłu, energetyce, transporcie itp. Termin zautomatyzowany, w przeciwieństwie do terminu automatyczny, podkreśla zachowanie przez człowieka operatora niektórych funkcji związanych z wyznaczaniem celu, podejmowaniem decyzji lub wykonywaniem pewnych funkcji, które nie mogą być zautomatyzowany.

Najbardziej znane są następujące klasy ACS:

Zautomatyzowany system sterowania procesami (SZP) - rozwiązuje problemy zarządzania eksploatacyjnego i sterowania obiektami technicznymi w przemyśle, energetyce, transporcie;

Zautomatyzowany system technicznego (technologicznego) przygotowania produkcji (ASTPP) – system związany z organizacją procesów technicznych istniejących lub dopiero powstających w produkcji, oparty na programowaniu obrabiarek sterowanych numerycznie, wytwarzaniu i montażu programów sterowane roboty itp.

Zautomatyzowany system zarządzania produkcją (APCS) - rozwiązuje problemy organizacji produkcji, w tym głównych procesów produkcyjnych, logistyki przychodzącej i wychodzącej. Przeprowadza krótkoterminowe planowanie produkcji z uwzględnieniem możliwości produkcyjnych, analizę jakości wyrobów, modelowanie procesu produkcyjnego. Do rozwiązania tych problemów wykorzystywane są systemy MIS i MES, a także systemy LIMS.

Zautomatyzowany system zarządzania przedsiębiorstwem (APCS) – do rozwiązania tych problemów służą systemy MRP, MRP II i ERP. Na przykład, jeśli przedsiębiorstwo jest instytucją szkolnictwa wyższego, istnieje uniwersytet ACS.

Jak przykład Najsłynniejsze ACS można zidentyfikować:

Zautomatyzowany system sterowania ruchem lub ASUD - przeznaczony do kontrolowania ruchu pojazdów i pieszych w sieci drogowej miasta lub autostrady;

Zautomatyzowany system sterowania oświetleniem ulicznym („ASU UO”) – przeznaczony do organizowania automatyzacji scentralizowanego sterowania oświetleniem ulicznym;

„Automatyczny system sterowania” dla hoteli;

Zautomatyzowany system kontroli podróży (ASKP) w transporcie publicznym w Moskwie itp.

Ostatnio jest szeroko stosowany i wdrażany zautomatyzowane systemy przetwarzania i kontroli informacji (ASOIU) - jest to szeroka klasa zautomatyzowanych systemów sterowania związanych z automatyką w zakresie przetwarzania, przechowywania i przesyłania informacji. ASOIU, w przeciwieństwie do ACS, można stosować niemal wszędzie, w formie systemy informacyjne, systemy sterowania, systemy automatyki w niemal każdej dziedzinie działalności człowieka. Nowoczesne ASOIU opierają się na użyciu sieć komputerowa, ukierunkowane na przetwarzanie informacji graficznych, wideo i dźwiękowych, wykorzystują technologie multimedialne, elementy systemów sztucznej inteligencji. Bez tego rodzaju oprogramowania trudno obecnie wyobrazić sobie nowoczesne przedsiębiorstwo, niezależnie od wielkości i kierunku działania. To wyjaśnia szybki wzrost wykorzystania ASOIU we wszystkich sektorach gospodarki.

Do grupy programy ogólnego przeznaczenia można przypisać:

Systemy zarządzania bazami danych (DBMS)

Serwery baz danych

Generatory raportów

Procesory tekstu

Procesory stołowe

Narzędzia graficzne prezentacji

Zintegrowane pakiety

Programy zorientowane na metodę

Systemy zarządzania bazami danych (DBMS)- zapewniają organizację i przechowywanie lokalnych baz danych na samodzielnych komputerach lub scentralizowane przechowywanie baz danych na serwerze plików i sieciowy dostęp do nich. Nowoczesne DBMS zawierają elementy technologii procesu projektowego CASE, w szczególności:

Wizualizacja schematów baz danych;

Automatyczne utrzymanie integralności bazy danych dla różnych rodzajów przetwarzania (włączanie, usuwanie, modyfikacja);

Obecność tzw. kreatorów wspomagających proces projektowania;

Szablony i prototypy struktur baz danych, formularzy raportów itp.

Serwery baz danych to oprogramowanie przeznaczone do tworzenia i wykorzystywania zintegrowanych baz danych w architekturze klient-serwer podczas pracy w sieci.

Multiuser DBMS w sieciowej wersji przetwarzania informacji przechowuje dane na serwerze plików, specjalnie dedykowanym komputerze, ale samo przetwarzanie odbywa się na stacjach roboczych.

Wspólne dla różnych typów baz danych jest użycie relacyjnego języka SQL (Structured Query Language) do implementacji zapytań dotyczących danych.

Generatory raportów(serwery raportów) zapewniają realizację zapytań i tworzenie raportów w formie drukowanej lub ekranowej w sieci o architekturze klient-serwer. Serwer raportów łączy się z serwerem bazy danych za pomocą sterowników usługi bazy danych (Crystal Reports, Profit for Windows).

Procesory tekstu przeznaczony do pracy z dokumentami tekstowymi. Rozwój ten kierunek są systemy wydawnicze Microsoft Word).

Procesory stołowe są wygodnym środowiskiem obliczeniowym, w skład którego wchodzą narzędzia grafiki biznesowej, specjalistyczne narzędzia przetwarzające (Microsoft Excel).

Narzędzia graficzne prezentacji- są to specjalistyczne programy przeznaczone do tworzenia obrazów i wyświetlania ich na ekranie, przygotowywania slajdów, kreskówek i ich projektowania (Microsoft PowerPoint, Flash).

Zintegrowane pakiety to zestaw kilku wzajemnie uzupełniających się funkcjonalnie programów, obsługujących ujednolicone technologie informatyczne zaimplementowane na jednej operacyjnej platformie obliczeniowej (Microsoft Office).

Komponenty zintegrowanych pakietów mogą działać w izolacji od siebie, mają Wspólny interfejs co ułatwia ich naukę.

Zapytanie ofertowe zorientowane na metodę zapewnić, niezależnie od dziedziny i funkcji systemów informatycznych, matematyczne, statystyczne i inne metody rozwiązywania problemów. Najpopularniejsze metody to programowanie matematyczne, rozwiązywanie równań różniczkowych, modelowanie symulacyjne, badania operacyjne (Storm, SYSTAT, SAS itp.)

Office PPP zapewniają organizacyjne zarządzanie działalnością biurową.

Pakiety PPP dla pakietu Office obejmują:

Organizatorzy (harmonogramy) – oprogramowanie do planowania czasu pracy, sporządzania protokołów spotkań, harmonogramów, prowadzenia ewidencji i książki telefonicznej (kalkulator, Zeszyt, zegar, kalendarz itp.)

Programy do tłumaczenia, sprawdzania pisowni, rozpoznawania tekstu (Tiger - system rozpoznawania języka rosyjskiego, Stylus Lingvo Office zawierający Fine Reader, Stylus dla Windows - tłumacz dla określonego języka, korektor pisowni Lingvo Corrector i słownik rezydentny Lingvo)

Pakiety komunikacyjne zaprojektowane do organizowania interakcji użytkownika ze zdalnymi abonentami lub sieciowymi zasobami informacyjnymi (ICQ itp.)

Przeglądarki, narzędzia do tworzenia stron WWW

Funkcje poczty e-mail (Pegasys Mail)

Systemy DTP- Jest to szeroka klasa oprogramowania realizującego główne komponenty wydawnicze.

Ta klasa oprogramowania obejmuje programy, które zapewniają:

Formatowanie i edycja tekstów

Automatyczne paginowanie tekstu

Układ komputerowy drukowanej strony

Grafika montażowa

Przygotowanie ilustracji

Przygotowanie autorskiego layoutu

Systemy DTP obejmują:

Photoshop dla Windowsa

Oprogramowanie multimedialne. Głównym znaczeniem tych narzędzi programowych jest tworzenie i wykorzystywanie informacji audio i wideo do rozbudowy przestrzeń informacyjna użytkownik (różne bazy komputerowych dzieł sztuki, biblioteki wideo, biblioteki multimediów, biblioteki nagrań dźwiękowych itp.)

Systemy sztucznej inteligencji:

Programy powłokowe do tworzenia systemów ekspertowych poprzez wypełnianie baz wiedzy i reguł wnioskowania

Gotowe systemy eksperckie do podejmowania decyzji w określonych obszarach tematycznych

Systemy do analizy i rozpoznawania mowy, tekstu itp.

Systemy inteligentne (SI) można rozumieć jako systemy automatyczne i zautomatyzowane z elementami sztucznej inteligencji (AI).

Główne obszary AI to:

Reprezentacja wiedzy i tworzenie systemów opartych na wiedzy

Kreatywność i gry (szachy, warcaby, go)

Rozwój interfejsów języka naturalnego i maszynowego tłumaczenia tekstów

Rozpoznawanie wzorców (każdemu obiektowi przypisana jest macierz cech, według której przebiega jego rozpoznawanie)

Nowe architektury komponentów (neurokomputery)

Inteligentne roboty

Specjalne oprogramowanie (języki Lisp, Prolog)

Szkolenia i samokształcenie (obejmują modele, metody i algorytmy ukierunkowane na automatyczne gromadzenie wiedzy w oparciu o analizę i generalizację danych)

Wiedza- jest to identyfikacja wzorców przedmiotu (zasad, powiązań, praw), które pozwalają rozwiązywać problemy w tym zakresie. Wiedza to dane o danych lub metadane.

Modele reprezentacji wiedzy:

Modele produkcyjne

Modele semantyczne

Modele ramek

Formalne modele logiczne

Narzędzia programowe to programy używane do opracowywania, modyfikowania lub rozwijania innych aplikacji lub programów systemowych.

Narzędzia programistyczne mogą pomóc na wszystkich etapach tworzenia oprogramowania. Pod względem celu są blisko systemy programowania.

Narzędzia obejmują np.:

    redaktorzy;

    narzędzia do łączenia programów;

    programy pomocnicze realizujące często używane akcje systemowe;

    pakiety programów graficznych itp.

      1. Układ programowania

System programowania to system do tworzenia nowych programów w określonym języku programowania.

Nowoczesne systemy programowania zwykle zapewniają użytkownikom wydajne i wygodne narzędzia programistyczne. Zawierają:

    kompilator lub tłumacz;

    Zintegrowane środowisko programistyczne;

    narzędzia do tworzenia i edycji tekstów programów;

    obszerne biblioteki standardowe programy i funkcje;

    programy do debugowania, tj. programy pomagające znaleźć i naprawić błędy w programie;

    „przyjazne” dla środowiska dialogowego użytkownika;

    wielookienkowy tryb pracy;

    potężne biblioteki graficzne; narzędzia biblioteczne

    wbudowany asembler;

    wbudowane biuro pomocy;

    inne specyficzne cechy.

Tłumacz (angielski tłumacz - tłumacz) to program tłumaczący. Konwertuje program napisany w jednym z języków wysokiego poziomu na program składający się z instrukcji maszynowych.

Translatory są implementowane jako kompilatory lub interpretery. Pod względem wykonywania pracy kompilator i interpreter bardzo się różnią.

Kompilator (angielski kompilator - kompilator, kolektor) odczytuje cały program, tłumaczy go i tworzy pełną wersję programu w języku maszynowym, która jest następnie wykonywana.

Tłumacz tłumaczy i wykonuje program linia po linii.

Po skompilowaniu programu ani program źródłowy, ani kompilator nie są już potrzebne. Jednocześnie program przetwarzany przez tłumacza musi być ponownie tłumaczony na język maszynowy przy każdym uruchomieniu programu.

Programy skompilowane działają szybciej, ale programy interpretowane są łatwiejsze do naprawienia i zmiany.

Popularne systemy programowania - Turbo Basic, Quick Basic, Turbo Pascal, Turbo C, Borland C++, Borland Delphi itp.

Każdy konkretny język nastawiony jest albo na kompilację, albo na interpretację, w zależności od celu, dla którego został stworzony. Na przykład, Pascala zwykle używany do rozwiązywania dość złożonych problemów, w których ważna jest szybkość programów. Dlatego ten język jest zwykle implementowany za pomocą kompilatora. Z drugiej strony, Podstawowy powstał jako język dla początkujących programistów, dla których realizacja programu linia po linii ma niezaprzeczalne zalety.

Czasami istnieje zarówno kompilator, jak i tłumacz dla tego samego języka. W takim przypadku możesz użyć interpretera do opracowania i przetestowania programu, a następnie skompilować debugowany program, aby przyspieszyć jego wykonanie.

      Trendy w rozwoju oprogramowania

Oprogramowanie narzędziowe, jako szczególny rodzaj oprogramowania, charakteryzuje się cechami ogólnymi i szczegółowymi

funkcji, jak w przypadku wszelkiego oprogramowania w ogólności. Powyżej omówiliśmy funkcje ogólne, a wyspecjalizowane funkcje charakterystyczne tylko dla tego typu programów to:

1. Stworzenie tekstu opracowanego programu za pomocą specjalnie ustalonych słów kodowych (języka programowania), a także określonego zestawu znaków i ich lokalizacji w tworzonym pliku - składnia programu.

2. Tłumaczenie tekstu utworzonego programu na kod maszynowy dostępny do rozpoznawania przez komputer. W przypadku znacznej objętości tworzonego programu jest on dzielony na osobne moduły i każdy z modułów tłumaczony jest osobno.

3. Połączenie poszczególnych modułów w jeden wykonywalny kod, zgodnie z niezbędną strukturą, zapewniając koordynację interakcji poszczególnych części ze sobą.

4. Testowanie i kontrola tworzonego programu, wykrywanie i eliminacja błędów formalnych, logicznych i składniowych, sprawdzanie programów pod kątem niedozwolonych kodów, a także ocena wydajności i potencjału stworzonego programu.

Rodzaje oprogramowania narzędziowego

Na podstawie zadań przypisanych oprogramowaniu instrumentalnemu można wyróżnić dużą liczbę różnych typów oprogramowania instrumentalnego:

1) Edytory tekstu

2) Zintegrowane środowiska programistyczne

4) Kompilatory

5) Tłumacze ustni

6) Łączniki

7) Parsery i generatory parserów (patrz Javacc)

8) Asemblery

9) Debugery

10) Profilerzy

11) Generatory dokumentów

12) Narzędzia do analizy pokrycia kodu

13) Narzędzia ciągłej integracji

14) Zautomatyzowane narzędzia do testowania

15) Systemy kontroli wersji itp.

Należy zauważyć, że powłoki do tworzenia programów aplikacyjnych są również tworzone przez programy narzędziowe i dlatego można je nazwać programami aplikacyjnymi. Rozważ krótko cel niektórych programów instrumentalnych.

Edytory tekstu.

Edytor tekstu to program komputerowy przeznaczony do przetwarzania plików tekstowych, takich jak tworzenie i wprowadzanie zmian.

Rodzaje edytorów tekstu.

Konwencjonalnie istnieją dwa rodzaje edytorów: strumieniowe edytory tekstu i interaktywny.

1) Strumieniowe edytory tekstu

Edytory strumieniowe to programy komputerowe, których zadaniem jest automatyczne przetwarzanie wejściowych danych tekstowych otrzymanych z pliku tekstowego zgodnie z regułami z góry określonymi przez użytkowników. Najczęściej regułami są wyrażenia regularne, w dialekcie specyficznym dla tego konkretnego edytora tekstu. Przykładem takiego edytora tekstu jest edytor Sed.

2) Interaktywne edytory tekstu

Interaktywne edytory tekstu to rodzina programów komputerowych zaprojektowanych do interaktywnego wprowadzania zmian w pliku tekstowym. Takie programy pozwalają wyświetlać aktualny stan danych tekstowych w pliku i wykonywać na nich różne akcje.

Często interaktywne edytory tekstu zawierają znaczące dodatkowe funkcje przeznaczone do automatyzacji niektórych czynności edycyjnych lub do zmiany sposobu wyświetlania danych tekstowych, w zależności od ich semantyki. Podświetlanie składni jest przykładem tego drugiego rodzaju funkcjonalności.

Edytory tekstu służą do tworzenia i edytowania dokumentów tekstowych. Najpopularniejsze to MS WORD, Leksykon. Główne funkcje edytorów tekstu to:

1) praca z fragmentami dokumentów,

2) wstawianie obiektów utworzonych w innych programach

3) paginację tekstu dokumentu

4) wprowadzanie i edycja tabel

5) wprowadzanie i edycja formuł

6) formatowanie akapitów

7) automatyczne tworzenie list

8) automatyczne tworzenie spisu treści.

Znane są dziesiątki edytorów tekstu. Najbardziej dostępne to NOTEPAD(notatnik), WORDPAD, WORD. O pracy danego edytora tekstu decydują zwykle funkcje, których przeznaczenie jest odzwierciedlone w pozycjach menu oraz w systemie pomocy.

Zintegrowane środowisko programistyczne

Zintegrowane środowisko programistyczne (IDE) to system oprogramowania używany przez programistów do tworzenia oprogramowania (SW). Środowisko programistyczne zwykle obejmuje:

1) edytor tekstu

2) kompilator i/lub interpreter

3) narzędzia do automatyzacji montażu

4) debuger.

Czasami zawiera również narzędzia do integracji z systemami kontroli wersji oraz różnorodne narzędzia upraszczające budowę graficznego interfejsu użytkownika. Wiele nowoczesnych środowisk programistycznych obejmuje również przeglądarkę klas, inspektora obiektów i diagram hierarchii klas do wykorzystania w programowaniu zorientowanym obiektowo. Chociaż istnieją środowiska programistyczne zaprojektowane dla wielu języków programowania, takich jak Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator lub Microsoft Visual Studio, środowisko programistyczne jest zwykle przeznaczone dla jednego określonego języka programowania, takiego jak Visual Basic, Delphi, Dev-C++ .

Szczególnym przypadkiem ISR są wizualne środowiska programistyczne, które obejmują możliwość wizualnej edycji interfejsu programu.

SDK(z angielskiego Software Development Kit) lub „devkit” – zestaw narzędzi programistycznych umożliwiający specjalistom ds. oprogramowania tworzenie aplikacji dla określonego pakietu oprogramowania, narzędzi programistycznych, platformy sprzętowej, systemu komputerowego, konsol do gier wideo, systemów operacyjnych i innych platform .

Programista zwykle uzyskuje SDK bezpośrednio od twórcy docelowej technologii lub systemu. Często pakiet SDK jest dystrybuowany przez Internet. Wiele SDK jest dystrybuowanych bezpłatnie, aby zachęcić programistów do korzystania z danej technologii lub platformy.

Dostawcy zestawów SDK czasami zastępują termin Oprogramowanie w pakiecie Software Development Kit bardziej dokładnym słowem. Na przykład Microsoft i Apple dostarczają zestawy Driver Development Kit (DDK) do opracowywania sterowników urządzeń, podczas gdy PalmSource nazywa swój zestaw narzędzi programistycznych „PalmOS Development Kit (PDK)”.

Przykłady SDK:

5) Zestaw programistyczny Javy

6) Pakiet SDK urządzeń Opery

Kompilatory.

Kompilator --

1) Program lub narzędzie sprzętowe wykonujące kompilację.

2) Program maszynowy użyty do kompilacji.

3) Translator konwertujący program napisany w języku źródłowym na moduł obiektowy.

4) Program, który tłumaczy tekst programu w języku wysokiego poziomu na równoważny program w języku maszynowym.

5) Program przeznaczony do tłumaczenia języka wysokiego poziomu na kod absolutny lub czasami na język asemblera. Informacje wejściowe dla kompilatora (kod źródłowy) to opis algorytmu lub programu w języku specyficznym dla domeny, a dane wyjściowe kompilatora to równoważny opis algorytmu w języku zorientowanym maszynowo (kod wynikowy).

Kompilowanie --

1) Tłumaczenie programu na język zbliżony do maszyny.

2) Tłumaczenie programu napisanego w języku źródłowym na moduł obiektowy. Implementowane przez kompilator.

Kompiluj — tłumacz program maszynowy z języka specyficznego dla domeny na język specyficzny dla maszyny.

Typy kompilatorów:

1) Wektoryzacja. Tłumaczy kod źródłowy na kod maszynowy komputerów wyposażonych w procesor wektorowy.

2) Elastyczny. Skompilowany w sposób modułowy, sterowany przez tabele i zaprogramowany w języku wysokiego poziomu lub zaimplementowany za pomocą kompilatora kompilatora.

3) Dialog.

4) Przyrostowy. Ponowne tłumaczenie fragmentów programu i rozszerzeń bez ponownej kompilacji całego programu.

5) Interpretacja (krok po kroku). Sekwencyjnie wykonuje niezależną kompilację każdej indywidualnej instrukcji (polecenia) programu źródłowego.

6) Kompilator kompilatorów. Tłumacz, który pobiera formalny opis języka programowania i generuje kompilator dla tego języka.

7) Debuguj. Eliminuje niektóre rodzaje błędów składniowych.

8) Mieszkaniec. Trwale rezyduje w pamięci głównej i jest dostępny do ponownego wykorzystania w wielu zadaniach.

9) Opracowane samodzielnie. Napisany w tym samym języku, z którego prowadzona jest transmisja.

10) Uniwersalny. Na podstawie formalnego opisu składni i semantyki języka wejściowego. Komponentami takiego kompilatora są: jądro, programy ładujące składnię i semantykę.

Rodzaje kompilacji:

1) Seria. Kompilowanie wielu modułów źródłowych w jednym elemencie zadania.

2) Linia po linii.

3) Warunkowe. Kompilacja, w której przetłumaczony tekst zależy od warunków określonych w programie źródłowym. Tak więc, w zależności od wartości jakiejś stałej, możesz włączyć lub wyłączyć tłumaczenie fragmentu tekstu programu.

struktura kompilatora.

Proces kompilacji składa się z następujących kroków:

1) Analiza leksykalna. Na tym etapie sekwencja znaków w pliku źródłowym jest konwertowana na sekwencję tokenów.

2) Analiza składniowa (gramatyczna). Sekwencja tokenów jest przekształcana w drzewo analizy.

3) Analiza semantyczna. Drzewo analizy jest przetwarzane w celu ustalenia jego semantyki (znaczenia) - na przykład powiązania identyfikatorów z ich deklaracjami, typami, sprawdzaniem zgodności, określaniem typów wyrażeń itp. Wynik jest zwykle nazywany „pośrednią reprezentacją/kodem” i może zostać rozszerzony o drzewo analizy, nowe drzewo, abstrakcyjny zestaw poleceń lub coś innego wygodnego do dalszego przetwarzania.

4) Optymalizacja. Zbędne konstrukcje są usuwane, a kod jest uproszczony przy zachowaniu jego znaczenia. Optymalizacja może odbywać się na różnych poziomach i etapach - na przykład nad kodem pośrednim lub nad końcowym kodem maszynowym.

5) Generowanie kodu. Z reprezentacji pośredniej generowany jest kod w języku docelowym.

W określonych implementacjach kompilatorów etapy te można rozdzielić lub połączyć w takiej czy innej formie.

Nadawanie i komponowanie.

Ważna historyczna cecha kompilatora, odzwierciedlona w jego nazwie ( język angielski kompiluj — montuj razem, komponuj), polegał na tym, że mógł również wykonywać linkowanie (to znaczy zawierał dwie części - translator i linker). Wynika to z faktu, że oddzielna kompilacja i linkowanie jako odrębny etap asemblera pojawiły się znacznie później niż pojawienie się kompilatorów. W związku z tym zamiast terminu „kompilator” termin „tłumacz” jest czasami używany jako jego synonim: albo w dawnej literaturze, albo gdy chce się podkreślić jego zdolność do tłumaczenia programu na kod maszynowy (i vice versa, używają terminu „kompilator”, aby podkreślić możliwość złożenia z wielu plików jednego).

Tłumacze ustni.

Tłumacz (język programowania) --

1) Program lub narzędzie techniczne, które wykonuje interpretację.

2) Typ translatora, który wykonuje przetwarzanie i wykonywanie programu źródłowego lub zapytania w trybie operator po operatorze (polecenie po poleceniu) (w przeciwieństwie do kompilatora, który tłumaczy cały program bez jego wykonywania).

3) Program (czasami sprzętowy), który analizuje polecenia lub instrukcje programu i natychmiast je wykonuje.

4) Procesor języka, który analizuje program źródłowy wiersz po wierszu i jednocześnie wykonuje określone działania, a nie tworzy skompilowanego programu w języku maszynowym, który jest następnie wykonywany.

Typy tłumaczy ustnych.

prosty tłumacz analizuje i natychmiast wykonuje (sama interpretacja) program polecenie po poleceniu (lub wiersz po wierszu), gdy jego kod źródłowy dociera do wejścia interpretera. Zaletą tego podejścia jest natychmiastowa reakcja. Wadą jest to, że taki interpreter wykrywa błędy w tekście programu tylko w przypadku próby wykonania polecenia (lub linii) z błędem.

Interpreter typu kompilator to system kompilatora, który tłumaczy kod źródłowy programu na reprezentację pośrednią, na przykład kod bajtowy lub p-kod, oraz samego interpretera, który wykonuje wynikowy kod pośredni (tzw. ). Zaletą takich systemów jest większa szybkość wykonywania programu (dzięki usunięciu analizy kodu źródłowego do osobnego, jednorazowego przebiegu oraz zminimalizowaniu tej analizy w interpreterze). Wady -- większe zapotrzebowanie na zasoby i wymaganie poprawnego kodu źródłowego. Jest używany w językach takich jak Java, PHP, Python, Perl (wykorzystywany jest kod bajtowy), REXX (wynik parsowania kodu źródłowego jest zapisywany), a także w różnych DBMS (wykorzystywany jest p-kod).

Jeśli interpreter typu kompilującego zostanie podzielony na komponenty, otrzymamy kompilator języka i prosty interpreter ze zminimalizowaną analizą kodu źródłowego. Co więcej, kod źródłowy takiego interpretera nie musi być w formacie tekstowym ani być kodem bajtowym, który rozumie tylko ten interpreter, może to być kod maszynowy jakiejś istniejącej platformy sprzętowej. Na przykład maszyny wirtualne, takie jak QEMU, Bochs, VMware, zawierają interpretery kodu maszynowego dla procesorów z rodziny x86.

Niektóre interpretery (na przykład Lisp, Scheme, Python, BASIC i inne) mogą pracować w trybie dialogowym lub w tzw. W tym trybie interpreter czyta pełną konstrukcję językową (na przykład s-expression w Lispie), wykonuje ją, drukuje wyniki, a następnie czeka, aż użytkownik wprowadzi następną konstrukcję.

Unikalny jest język Forth, który może pracować zarówno w trybie interpretacji danych wejściowych, jak i kompilacji, umożliwiając przełączanie się między tymi trybami w dowolnym momencie, zarówno podczas tłumaczenia kodu źródłowego, jak i podczas działania programów.

Należy również zauważyć, że tryby interpretacji można znaleźć nie tylko w oprogramowaniu, ale także w sprzęcie. Tak więc wiele mikroprocesorów interpretuje kod maszynowy za pomocą wbudowanych mikroprogramów, a procesory z rodziny x86, począwszy od Pentium (na przykład na architekturze Intel P6), podczas wykonywania kodu maszynowego wstępnie tłumaczą go na format wewnętrzny (na sekwencję mikrooperacje).

Algorytm prostego interpretera:

2. przeanalizować instrukcję i określić odpowiednie działania;

3. podjąć odpowiednie działania;

4. jeżeli warunek zakończenia programu nie został osiągnięty, przeczytaj następną instrukcję i przejdź do punktu 2.

Wady i zalety tłumaczy.

Zalety:

1) Duży przenośność interpretowanych programów – program będzie działał na dowolnej platformie, która ma odpowiedniego tłumacza.

2) Z reguły bardziej zaawansowane i wizualne sposoby diagnozowania błędów w kodach źródłowych.

3) Uproszczenie debugowania kodów źródłowych programów.

4) Mniejsze rozmiary kodu w porównaniu z kodem maszynowym uzyskanym po konwencjonalnych kompilatorach.

Wady:

1) Interpretowany program nie może być wykonywany oddzielnie bez programu interpretującego. Sam tłumacz może być bardzo zwarty.

2) Zinterpretowany program działa wolniej, ponieważ pośrednia analiza kodu źródłowego i zaplanowanie jego wykonania wymaga dodatkowego czasu w porównaniu z bezpośrednim wykonaniem kodu maszynowego, do którego kod źródłowy mógłby zostać skompilowany.

3) Praktycznie nie ma optymalizacji kodu, co prowadzi do dodatkowych strat w szybkości interpretowanych programów.

Łącznik.

łącznik(również linker, linker) - program wykonujący linkowanie - pobiera jeden lub więcej modułów obiektowych jako dane wejściowe i składa z nich wykonywalny moduł.

Aby połączyć moduły, linker używa tabel nazw utworzonych przez kompilator w każdym z modułów obiektowych. Takie nazwy mogą być dwojakiego rodzaju:

1) Nazwy zdefiniowane lub wyeksportowane - funkcje i zmienne zdefiniowane w danym module i przewidziane do wykorzystania przez inne moduły.

2) Nazwy niezdefiniowane lub zaimportowane - funkcje i zmienne, do których moduł się odwołuje, ale sam ich nie definiuje.

Zadaniem linkera jest rozwiązanie odwołań do niezdefiniowanych nazw w każdym module. Dla każdej zaimportowanej nazwy jej definicja znajduje się w innych modułach, wzmianka o nazwie jest zastępowana jej adresem.

Konsolidator zwykle nie sprawdza typu ani liczby parametrów procedury i funkcji. Jeśli konieczne jest łączenie modułów obiektowych programów napisanych w językach o silnej typizacji, to przed uruchomieniem konsolidatora należy przeprowadzić niezbędne kontrole za pomocą dodatkowego narzędzia.

monter.

monter(z angielskiego asembler - asembler) - program komputerowy, kompilator kodu źródłowego programu napisanego w asemblerze na program w języku maszynowym.

Podobnie jak sam język (asembler), asemblery są zwykle specyficzne dla określonej architektury, systemu operacyjnego i wariantu składni języka. Jednocześnie istnieją asemblery wieloplatformowe lub całkowicie uniwersalne (a dokładniej ograniczone-uniwersalne, ponieważ nie da się pisać programów niezależnych od sprzętu w języku niskiego poziomu), które mogą działać na różnych platformach i systemach operacyjnych. Wśród tych ostatnich można również wyróżnić grupę cross-assemblerów zdolnych do asemblacji kodu maszynowego i modułów wykonywalnych (plików) dla innych architektur i systemów operacyjnych.

Montaż może nie być pierwszym ani ostatnim krokiem na drodze do uzyskania wykonywalnego modułu programu. Tak więc wiele kompilatorów z języków programowania wysokiego poziomu generuje wynik w postaci programu w języku asemblera, który jest dalej przetwarzany przez asembler. Również wynikiem asemblera może nie być plik wykonywalny, ale moduł obiektowy zawierający oddzielne i niezwiązane części kodu maszynowego i danych programu, z którego (lub z kilku modułów obiektowych) w przyszłości za pomocą programu konsolidującego (" linker”) plik wykonywalny.

Debuger lub debugger to moduł środowiska programistycznego lub oddzielna aplikacja przeznaczona do wyszukiwania błędów w programie. Debuger umożliwia przechodzenie przez śledzenie, monitorowanie, ustawianie lub zmianę wartości zmiennych podczas wykonywania programu, ustawianie i usuwanie punktów przerwania lub warunków przerwania i tak dalej.

Lista debuggerów.

1) AQtime to komercyjny debugger dla aplikacji zbudowanych dla .NET Framework w wersji 1.0, 1.1, 2.0, 3.0, 3.5 (w tym aplikacji ASP.NET), a także dla aplikacji Windows 32-bitowych i 64-bitowych.

2) DTrace to platforma dynamicznego śledzenia dla systemów Solaris, OpenSolaris, FreeBSD, Mac OS X i QNX.

3) Ogrodzenie elektryczne — debugger pamięci.

4) GNU Debugger (GDB) to debugger programu z projektu GNU.

5) IDA to potężny deasembler i debugger niskiego poziomu dla systemów operacyjnych Windows i Linux.

6) Microsoft Visual Studio to środowisko programistyczne zawierające narzędzia do debugowania firmy Microsoft Corporation.

7) OllyDbg to darmowy debugger niskiego poziomu dla systemów operacyjnych z rodziny Windows.

8) SoftICE jest debuggerem niskiego poziomu dla systemów operacyjnych z rodziny Windows.

9) Sun Studio to środowisko programistyczne zawierające debugger dbx dla systemów operacyjnych Solaris i Linux firmy Sun Microsystems Corporation.

10) Dr. Watson to standardowy debugger Windows, który umożliwia tworzenie zrzutów pamięci.

11) TotalView jest jednym z komercyjnych debuggerów dla systemu UNIX.

12) WinDbg to darmowy debugger firmy Microsoft Corporation.

Generator dokumentacji – program lub pakiet oprogramowania umożliwiający otrzymywanie dokumentacji przeznaczonej dla programistów (dokumentacja API) i/lub dla użytkowników końcowych systemu, ze specjalnie skomentowanego kodu źródłowego oraz w niektórych przypadkach z modułów wykonywalnych (uzyskanych z danych wyjściowych kompilatora).

Zwykle generator analizuje kod źródłowy programu, podkreślając konstrukcje składniowe odpowiadające istotnym obiektom programu (typy, klasy i ich składowe/właściwości/metody, procedury/funkcje itp.). W analizie wykorzystywane są również metainformacje o obiektach programu, prezentowane w formie komentarzy dokumentacyjnych. Na podstawie wszystkich zebranych informacji powstaje gotowa dokumentacja, zwykle w jednym z ogólnie przyjętych formatów - HTML, HTMLHelp, PDF, RTF i inne.

Komentarze do dokumentacji.

Komentarz dokumentalny jest specjalnie zaprojektowany