-->
Главная » Статьи » Информатика

Визуальды программалау құралдары – MS Visual Studio, Borland Delphi және т.б.

Визуальды программалау құралдары – MS Visual Studio, Borland Delphi және т.б.

 

 

Программаның визуальды жобалануы. Визуальды орталар (Delphi,C++Builder, Power Builder(SY Base), Designer,  Developer(Oracle), Visual Busic, Visual C++ және т.б.). Delphi файлының типтері. Delphi – де программаны байланыстыру және компиляциялау.  Delphi компиляторының директивалары. Компиляция нәтижесі. Visual Studio  аспаптары және оларды қолдану мүмкіндіктері.

Жобалаудың визуальды ортасын ұйымдастыру. RAD -  редакторжөндегішформалар конструкторыRAD өнімділігін мүмкіндіктеріне байланысты бағалау: визуальды өңдеу ортасы, программалау тіліжобалаудың шаблондарының кітапханасы, компиляторлардеректерді сақтау объектілері және олармен жұмыс істеу аспаптарыжелілік программалау аспаптары және объектілеріBorland Delphi графикалық ортасының 10 маңызды функциялары.Меню құрамы. Бөлек меню пунктерін құру негізі және қызметіМеню бөлімдерінің ағашыҚұруашужобаны сақтау немесе жобалар тобын және элементтерін смақтауМеню пунктерімен және бөлімдерімен қолданылатын функцияларАспаптар бөлігі – өңдеу аспаптарының ағашыІшкі және сыртқы аспаптарImage EditorWin SightBDEBDE AdministratorBD SQL LinksSQL BuilderSQL MonitorData PumpTeam SourceCode Insight,Repository  және т.б. Қолданылатын басқыштар панелі және олардың қолданылуыЖобады қолдану үшін объектілер панелі - құрамы, компоненттер жиыны және топтар жиыныпанелді жеке жобалаушыға құрастырукомпонентті пакеттеу. Визуальды редактор панелі – обьектілер инспекторы.Компонент қасиеттеріне қатынауды ұйымдастыруУақиғалар беті және олардың компоненттер байланысының суретін қолдануыФокус түсінігі.Жобалау кезіндегі және деректерді өңдеу программларын орындау кезіндегі обьект активизациясы (фокустау). Формалар панелі – жоба контейнеріБір және көпбеттік жобаларФормаларды және панелдерді жобалау және орындау кезінде ауыстыруМодальдық.

Delphi файлдарының типтері. Формалар файлы (*.dfm), ресурстар файлы (*.res), пакеттер файлы (*.bpl), жобалар файлы (*.dpr), қосымшалар –модулдер файлы (units) кадрлар, компоненттержалпы қатынау файлдары (*.pas), жоба опциялары және жұмыс столын орнату (*.dof, *.dsk), резервтік көшірмелер – құрылымықызметіқұру және редакторлау аспаптарыЖоба менеджерлері және кітапханаларды өңдеуФайл аттарының Delphiпакеттерімен байланысты кеңейтулері:

bpl  - runtime пакеті, .dll файл Delphi –ге адаптацияланған ОЖНегізгі аты .dpk немесе .dpkwsource файлдарынан алынады.

Dcp – пакет тақырыбынан және барлық .dcu пакет файлының конкатенациясынан тұратын, компилятор керек ететін символдарды қосатынбинарлы бейне. Қарапайым dcp file әрбір пакет үшін құрылады. Негізгі аты .dpk таратқышынан алынады. Пакеттерді қолданған кезде  .dcp файлдар міндетті түрде болуы тиіс.

dcu and pas         - пакетке кіретін модулдер файлының бинарлы бейнесі. Әрбір unit үшін қажет файл.

dpk and dpkw – таратқыш файлдар, программалаушымен құрылады .dpk және .dpkw пакеттері бірдей, бірақ dpkw кеңейтілуі кросс-платформалы қосымшалар үшін қолданылады, олар тек  CLX кітапханасының компоненттерінен тұрады. Әдетте VCL және  CLX кітапханаларының компоненттері қолданылады.

Программаның орындалатын модулі келесілерден тұрады: тақырыптық бөлім, мұнда қосылатын кітапханалар аталады (uses); интерфейстік бөлім, мұнда қолданылатын деректер типі сипатталады, сонымен қатар класстар: орындалатын бөлім – имплементация, - мұнда ақпараттармен жаслатын әрекеттер сипатталады. С++ программалау кезінде тақырыптық (.h - header) файлдарда класстар сипатталады. Модулдерді байланыстыру #include командасымен орындалады.

Компиляция және программаларды байланыстыруКомпилятор директивалары.

Программаны құру процессі ( С++ Builder/ Гл1)

Бұл бөлімде біз жоғарғы деңгейдегі тілдерде программаның трансляциясын және "классикалық” түрде процессті дайындау (біздің жағдайда C++')және оны орындалатын файлға ауыстыруды қарастырамызол Windows жүйесінде жұмыс жасайтын программаға керек барлық машиналықинструкциялардан және т.б.  тұрады. C++Builder –да, біз төменде көрсететініміздей, бұл процесстің деталдары программалаушыдан жасырылған, және сонымен қатар, оның қосымша моменттері бар, ол программалаудың визуальды спецификамен шартталған. C++ тілінде программа құру келесідегідей болады. Бірінші кезекте программалаушы кез – келген текстік редактор көмегімен орындалатын кодтағы файлды C/C++ тілінде дайындайды. Бұдан кейін программаның құрылуы орындаладыол келесі этаптармен орындалады:

·        Орындалатын файлдың компиляциясы және объектілі кодтың алынуы (кеңейтілуі .obj).

·        Обьектілік файлдардың компоновкасы барлық керек кітапханалардың қосылуы (соның ішінде, динамикалық кітапханаларда), нәтижесіндемашиналық код алынады.

·        Ресурстар компоновкасы (ресурстарға биттік матрицалар, курсорларжолдық кестелер, пиктограммалар және т.б. жатады). Бұл соңғы этап,онда  соңғы ехе-файл қалыптасадыол орындалуға жіберіледі

1. Source1.cpp   2. Source2.cpp   3. Source3.cpp   4. Компилятор

5. Source1.obj   6. Source2.obj    7. Source3.obj    8. Addon.lib

9. Жіберу коды  10Орындалатын кітапхана  11. App.res ресурстары 12. Компоновщик

13. Ресурстар компоновщигі

14. App.exe қосымшасы

Кейбір жүйелер (соның ішінде C++Builder-де) обьектілік файлдармен ресурстардың компоновкасын бірден орындайды, яғни соңғы екі этапты қосып істейді. Мұндағы бір проблема туады, оған тоқталып өтсек.

Бөліп жасаған компиляция проблемасы.

Бұрынғы кезде БЭСМ-4 машиналарына арналған, Алгол-60 немесе FORTRAN тілінде жазылған программа, бір ғана файлдан тұрған, нақтылай айтсақ перфокарта"колодасынан” тұрған. Сондай – ақ  PC үшін Pascal тілідеде осы әдіс пайдаланылған (мысалы, Turbo Pascal 2), анығырақ айсақ компиляция бір ғана орындалатын файлдан тұрған. Компилятор "бірден” программаның барлық текстін ғана көрген, сондықтан, мысалы, процедураны шақыру кезіндегі факт жүзінде енгізілетін параметрлердің типін және санын, — олардың тақырып басындағы көрсетілгенмен сәйкестігін бақылай алмаған (формальды параметрлер болған). Компилятор программаны бірден машиналық кодқа трансляциялаған (орындалатын файл). Программаның қиындықтарына және көлеміне байланысты оларды бірнеше орындалатын файлдарға бөлуге тура кедген. Сәйкесінше программа трансляциясы екі этапқа бөлінген — компиляция, бұл жерде орындалатын файл обьектілік кодқа трансляцияланады, және компоновка, нәтижесінде бірнеше обьектілік файлдардан бір соңғы орындалатын файл алынады. Мұнда, адрестік сілтемелерді орналастыру керек, мысалы, программаның негізгі файлы басқа файлдарда орналасқан қосымша процедураларға сілтемеленеді.

C/C++  компиляторы  .obj кеңейтілуіндегі стандартты обьектілік файлдарды генерациялайды. (Олардың форматы Intel фирмасымен анықталған және белгілі бір операциялық жүйеге байланысты болады). Бұл файлдар машиналық кодтан, тұрады, оларда қосымша ақпараттар болады, олар обьектілік модулдер арасындағы байланыс сілтемелерін орнатуға қолданылады. Сонымен, файлдың басында екі кесте қалыптастырылады: глобальды символдар кестесі (бұл объект аттары, олар берілген файлмен анықталады, және басқа файлдар басқа программалық модулдерден оларға сілтемеленеді) және сыртқы сілтеме кестесі (басқа файлдардағы объект аттары, берілген модул қатынау үшін керек). Бұл кестелердегі ақпараттарды пайдалана отырып, компоновщик кодты модификациялайды, оларға керекті адрестерді қойып шығады.

Мұндағы проблема, объектілік файлда ақпараттар болмайды, сол үшін басқа файлда орналасқан процедураны шақыру дұрыстығын тексеру мүмкін емес (яғни оның параметрлерінің саны мен типін анықтайға болмайды). Өйткені компилятор орындалатын файл кодын бөлектеп өңдейді.

Turbo Pascal тілінде (кейінірек — Delphi-де) бұл проблема арнайы аралық файлдар форматтарына байланысты шешілді. Бұл "объектілік” файлдар (оларды Delphi-дегі  кеңейтілуі, dcu деп беріледі), функция және процедура параметрлері жайындағы ақпараттардан, және анықталатын модулдегі деректер типінен (класстардан) және т.б. тұрады.

C/C++ -да бұл максималды әмбебап тіл ретінде ойлап табылған және стандартты емес обьектілік файл форматтарын қолдана алмайды. Тақырыптық файлдар (олардың кеңейтілуі .h немесе .hpp болады) орындалатын кодтың компиляцияланатын файлына қосылады (.с немесе .срр) олпрепроцессордың  #include директивасы арқылы орындалады, одан кейін тақырыптық файлдың аты үшбұрышты жақшаға алынып кетеді, мысалы:

#include <stdlib.h>  немесе   #include "myfile.h"

Препроцессор #include директивасымен көрсетілген файлды ауыстырадыпрепроцессорлық өңдеу біткеннен кейін алынған текст компиляторға беріледіол оны обьектілік кодқа трансляциялайды.

Көтеген C/C++ программалау жүйелерінде препроцессор  компилятормен қолданылатын бір бүтін ретінде пайдаланылады (бұл дұрысC++Builder үшін де). Ол орындалатын файл компиляциясын жеделдетедіжәне аралық препроцессорлық өңделген коды бар файлды құруды керек етпейдіБірақ C++Builder бөлек препроцессор срр32.ехе, командалық жолдан жіберілетін файл қолданыладыБір тақырыпты көптеген орындалатын файлдарға қосуға болады.

Кітапханалар жайында:

Кітапханаларға біз сіздермен тоқталып өттік, бірақ олар жайында ешбір ақпарат бермедікНақты айсақ кітапхана дегеніміз объектілік модулдер жиынтығы; олар lib кеңейтілуінде бір файлға компоновкаланған обьектілік код модулдерінің жиынтығыСурет 1.1 гипотеттік пайдаланушы кітапханасы Addon.lib көрсетілгенОл бірнеше обьектілік модулдерден tlib32.exe кітапханасының көмегімен құрылуы мүмкін.

Сонымен қатар суретте C/C++-тің орындалатын кітапханасы  мен жіберу коды көрсетілген. Бұл С жасалатын программаның компонавкасының керекті элементтерінен тұрады. Жіберу коды, басқару программаның кіріс нүктесіне берліген кезде орындалады (main, WinMain және т.б. функциялар). Олармен орындалатын есептердің арасында келесілерді атап кеуге болады:

·        Орындалатын кітапхананың инициализациясы

·        C++ глобальды объектілерін конструкторлау

·        Керек ресурстардың болмауы кезінде программаны аяқтау.

Орындалатын кітапхана көптеген жалпы міндетті процедуралардан тұрадыоларды кез – келген программа шақырыла аладыНегізінен кітапханалар:

·        Файлдарды басқарады;

·        Жадыны басқарады;

·        Деректерді ауыстырады және т.б. көтеген жұмыстар.

Динамикалық қосылатын кітапханаларға тоқталатын болсақ — DLL, — программалаушының көз қарасымен олар әдеттегі статикалық компоновкаланатын обьектілік кітапханалардан ерекшеленбейді. DLL-де орналасқан функциялар да басқа функциялар сияқты шақырылады. Шынында, "сыртынан” динамикалық кітапханалар орындалатын файлдар сияқты көрінедібұл кітапханалар кітапханашымен емес, ал компоновщикпен құрылады.

Компиляция нәтижесі. Компилятор және компоновщик опцияларының тізімі. «Компиляторды басқару» ++Builder). Бұл бөлікте С программларымен байланысты Project Options диалогының орнатылуын қарастырамыз. Негізінен бұл осы диалогтағы Compiler және Advanced Compiler беттеріне байланысты болады. Ол негізгі менюдегі Project | Options таңдалуымен ашылады.

Compiler беті сурет 4.1 көрсетілген. Беттің төменгі бөлігінен сіз басқышты көресіз: Full debug және Release. Олардың біріншісі C++Builder отладчигінің мүмкіндігін толық мөлшерде пайдалана алатын барлық параметрлердің шарттарын орындау үшін қолданылады; екіншісі қандайда бір отладкаланатын ақпараттарды және орындау жылдамдығын арттыру үшін код оптимизациясын генерациялауды рұқсат етпейді. Тілді үйренгіңіз келсе Full debug басқышын пайдаланған дұрыс және ары қарай отладкаға және код тиімділігіне, қалай орнату керек екендігіне көңіл бөлмесеңіз де болады.

·        Code optimization радиобасқыштар тобы оптимизацияны толық өшіріп тастауға көмектеседі, ал оларды өзгерткіңіз келсе Selected радиобасқышындағы Optimizations өзгерту арқылы жасауға болады. Бұл кезде опциялар тізімімен диалог терезесі ашылады.

·        Warnings тізімі ескертулер тізімін басқарадыМұнда барлық ескертулерді басқару боладыCompiler Warnings диалогы командалық жолдағы кілттерді көрсетеді.

·        Pre-compiled headers бөлігі тақырыптық файлдардың  прекомпиляциясын басқарады.

орындалатын модулдердің модулдеріне кіретін тақырыптық файлдардың кодының  көлемі, көп мыңдаған, жүзмыңдаған жолдардан тұруы мүмкінСонымен қатар бұл тақырыптық файлдар жобаның әрбір модуліне кіруі мүмкінПрограмманы өңдеу кезінде тақырыптық файлдар сирек өзгертіледі сондықтан л стандартты тақырыптар мүлдем өзгертілмейді), арнайы түрдегі тақырыптық файлдар құрған дұрыс, ол барлық"тақырыптық” ақпараттарды формада ұстап отырады да, оларға максималды қатынауды қамтамасыздандырады.

None басқышы қайта компиляцияланатын тақырыптарды қолдануға тиым салады. Use pre-compiled headers басқышы қайта компиляцияланатын символдарды қолдануға тиым салады (бұл .csm файлдарының басқа аттары). Cache pre-compiled headers басқышы қайта компиляцияланатын тақырыптарды кэштеуге бұйрықтайды, яғни ақпаратты жадыда сақтайды, және csm-файлдарды қайта компиляциялаудан сақтайды. Бұл егер сіз бірнеше файлдарды трансляциялаған кезде пайдалы.

·        File редакторлау аймағына name компиляцияланғант символдардың аты беріліп кетеді.

·        Stop after аймағына ат беруге болады, компиляциядан кейін қайта компиляцияланатын тақырыптардың генерациясы тоқтатылады.Бұл файл орындалатын модулге қосылған болуы керек (мысалы, windows.h басқа да көптеген тақырыптық файлдардан тұрады)

·        Debugging бөлігі компилятормен құрылатын отладкаляқ ақпараттарды обьектілік файлдарға қосуды басқарады (Debug information және Line numbers жалаушалары). Сонымен қатар, Disable inline expansions жалаушасы inline кеңейтілуін – функцияға тағайындау үшін қолданылады. Бұл отладканы жеңілдетеді.

Егер сіз программаны отладкалағының келсе, онда Linker бетіндегі Create debug information жалаушасы да орнатылғандығын қадағалауыңыз керек.

·        Compiling бөлігі компиляцияның жалпы оспектілерін басқару үшін қолданыладыБелгіленген Merge duplicate strings жалаушасы кезіндекомпилятор барлық кезедскен литералдарды жолдарды сәйкестендіреді, егер екі немесе одан көп жолдар сәйкес болса, онда тек бір ғана жолдыгенерациялайдыБелгіленген Stack frames жалаушасы кезінде компилятор стандартты кадр стегінің функцияларын  генерациялайды, яғни стандартты енгізу және қайта қайту функциялары. Белгіленген Treat enum types as ints жалаушасы кезінде компилятор атап өтуге 4-байттық сөз бөледі. Show general messages жалаушасы компиляторға берілетін жалпы хабарламаларды орнату үшін қолданылады (олар ескерту және қате жайындағы хабарламалар болмауы керек). Extended error information жалаушасы компилятор жұмысының кеңейтілген қате хабарламаларын береді.

Advanced Compiler  беті. Бұл бет (сурет 4.2) обьектілік код генерациясының деталдарын басқаруға көмектеседі. 

·        Instruction set радиобасқыштар тобы жүйенің  мақсаттық процессорының типін береді. Бұл топты орнату -3, -4, -5 және -6 командалық жол кілтеріне эквивалент.

·        Data alignment жадыдағы деректерді дұрыстауды басқарадыДұрыстау болмауы да мүмкін (Byte), әйпесе деректер 2, 4 немесе 8 байтқа бөлінетін адрестерде орналасуы мүмкінБұл топты орнату командалық жол -an кілтеріне эквивалент, мұндағы  п — 1, 2, 4 немесе 8.

·        Calling convention шақыру шартын бередіүнсіздікпен алынады. (Register _fastcall шартын белдіреді.) Командалық жолдың эквивалент кілттері— -рс (немесе -р-), -р, -рг және -ps.

·        Register variables регистрлік айнымалыларды құруды басқарадыNone олардық қолданылуына тиым саладыAutomatic рұқсат етеді, жәнеRegister keyword регистрлерде тек айнымалыларды сақтауға рұқсат екендігін көрсетіполарды register түрінде хабарлайды. Радиобасқыштар -, -г жәнеrd кілттеріне сәйкес.


Категория: Информатика | Добавил: admin_ (01.12.2013)
Просмотров: 3622 | Теги: Borland Delphi, Визуальды программалау құралдары – | Рейтинг: 0.0/0
Всего комментариев: 0

Имя *:
Email:
Код *: