Бағдарламалық құралдарды құрастыру



Жұмыс түрі:  Реферат
Тегін:  Антиплагиат
Көлемі: 7 бет
Таңдаулыға:   
ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ

М.ӘУЕЗОВ АТЫНДАҒЫ ОҢТҮСТІК ҚАЗАҚСТАН МЕМЛЕКЕТТІК УНИВЕРСИТЕТІ

БАӨЖ

Тақырыбы: Бағдарламалық құралдарды құрастыру

Орындаған: Дәнебекқызы Ләззат
Тобы: ИП-18-7К1
Қабылдаған: Джакибаев Ахмедия

Шымкент 2020

Бағдарламалық құралдарды құру процессі (С++ Builder).

Мұнда біз жоғарғы деңгейдегі тілдерде программаның трансляциясын және "классикалық" түрде процессті дайындау (біздің жағдайда C++') және оны орындалатын файлға ауыстыруды қарастырамыз, ол Windows жүйесінде жұмыс жасайтын программаға керек барлық машиналық инструкциялардан және т.б. тұрады. C++Builder - да, біз төменде көрсететініміздей, бұл процесстің детальдары программалаушыдан жасырылған, және сонымен қатар, оның қосымша моменттері бар, ол программалаудың визуальды спецификамен шартталған. C++ тілінде программа құру келесідегідей болады. Бірінші кезекте программалаушы кез келген текстік редактор көмегімен орындалатын кодтағы файлды CC++ тілінде дайындайды. Бұдан кейін программаның құрылуы орындалады, ол келесі этаптармен орындалады:
1) Орындалатын файлдың компиляциясы және объектілі кодтың алынуы (кеңейтілуі .obj).
2) Объектілік файлдардың компоновкасы барлық керек кітапханалардың қосылуы (соның ішінде, динамикалық кітапханаларда), нәтижесінде машиналық код алынады.
3) Ресурстар компоновкасы (ресурстарға биттік матрицалар, курсорлар, жолдық кестелер, пиктограммалар және т.б. жатады). Бұл соңғы этап, онда соңғы ехе-файл қалыптасады, ол орындалуға жіберіледі. Бұл процесс 1-суретте келтірілген.

Сурет 1 . Бағдарламалық құралдарды құрудың қысқартылған сұлбасы

1) Source1.cpp.
2) Source2.cpp.
3) Source.
4) cpp.
5) Компилятор.
6) Source1.obj.
7) Source2.obj.
8) Source3.obj.
9) Addon.lib.
10) Жіберу коды.
11) Орындалатын кітапхана.
12) App.res ресурстар.
13) Компоновщик.
14) Ресурстар компоновщигі.
15) App.exe қосымшасы.
Кейбір жүйелер (соның ішінде C++Builder-де) объектілік файлдармен ресурстардың компоновкасын бірден орындайды, яғни соңғы екі этапты қосып істейді. Мұндағы бір проблема туады, оған тоқталып өтсек.
Бөліп жасаған компиляция проблемасы.
Бұрынғы кезде БЭСМ-4 машиналарына арналған, Алгол-60 немесе FORTRAN тілінде жазылған программа, бір ғана файлдан тұрған, нақтылай айтсақ перфокарта"колодасынан" тұрған. Сондай - ақ PC үшін Pascal тілідеде осы әдіс пайдаланылған (мысалы, Turbo Pascal 2), анығырақ айсақ компиляция бір ғана орындалатын файлдан тұрған. Компилятор "бірден" программаның барлық текстін ғана көрген, сондықтан, мысалы, процедураны шақыру кезіндегі факт жүзінде енгізілетін параметрлердің типін және санын, -- олардың тақырып басындағы көрсетілгенмен сәйкестігін бақылай алмаған (формальды параметрлер болған). Компилятор программаны бірден машиналық кодқа трансляциялаған (орындалатын файл). Программаның қиындықтарына және көлеміне байланысты оларды бірнеше орындалатын файлдарға бөлуге тура кедген. Сәйкесінше программа трансляциясы екі этапқа бөлінген -- компиляция, бұл жерде орындалатын файл объектілік кодқа трансляцияланады, және компоновка, нәтижесінде бірнеше объектілік файлдардан бір соңғы орындалатын файл алынады. Мұнда, адрестік сілтемелерді орналастыру керек, мысалы, программаның негізгі файлы басқа файлдарда орналасқан қосымша процедураларға сілтемеленеді.
CC++ компиляторы .obj кеңейтілуіндегі стандартты объектілік файлдарды генерациялайды (олардың форматы Intel фирмасымен анықталған және белгілі бір операциялық жүйеге байланысты болады). Бұл файлдар машиналық кодтан, тұрады, оларда қосымша ақпараттар болады, олар объектілік модульдер арасындағы байланыс сілтемелерін орнатуға қолданылады. Сонымен, файлдың басында екі кесте қалыптастырылады: глобальды символдар кестесі (бұл объект аттары, олар берілген файлмен анықталады, және басқа файлдар басқа программалық модулдерден оларға сілтемеленеді) және сыртқы сілтеме кестесі (басқа файлдардағы объект аттары, берілген модул қатынау үшін керек). Бұл кестелердегі ақпараттарды пайдалана отырып, компоновщик кодты модификациялайды, оларға керекті адрестерді қойып шығады.
Мұндағы проблема, объектілік файлда ақпараттар болмайды, сол үшін басқа файлда орналасқан процедураны шақыру дұрыстығын тексеру мүмкін емес (яғни оның параметрлерінің саны мен типін анықтайға болмайды). Өйткені компилятор орындалатын файл кодын бөлектеп өңдейді.
CC++ -да бұл максималды әмбебап тіл ретінде ойлап табылған және стандартты емес объектілік файл форматтарын қолдана алмайды. Тақырыптық файлдар (олардың кеңейтілуі .h немесе .hpp болады) орындалатын кодтың компиляцияланатын файлына қосылады (.с немесе .срр) ол препроцессордың #include директивасы арқылы орындалады, одан кейін тақырыптық файлдың аты үшбұрышты жақшаға алынып кетеді.
Препроцессор #include директивасымен көрсетілген файлды ауыстырады; препроцессорлық өңдеу біткеннен кейін алынған текст компиляторға беріледі, ол оны объектілік кодқа трансляциялайды.
Көптеген CC++ бағдарламалау жүйелерінде препроцессор компилятормен қолданылатын бір бүтін ретінде пайдаланылады (бұл дұрыс C++Builder үшін де). Ол орындалатын файл компиляциясын жеделдетеді, және аралық препроцессорлық өңделген коды бар файлды құруды керек етпейді. Бірақ C++Builder бөлек препроцессор срр32.ехе, командалық жолдан жіберілетін файл қолданылады. Бір тақырыпты көптеген орындалатын файлдарға қосуға болады.
Кітапхана дегеніміз объектілік модульдер жиынтығы; олар lib кеңейтілуінде бір файлға компоновкаланған объектілік код модульдерінің жиынтығы. Ол бірнеше объектілік модульдерден tlib32.exe кітапханасының көмегімен құрылуы мүмкін.
Сонымен қатар суретте CC++-тің орындалатын кітапханасы мен жіберу коды көрсетілген. Бұл С жасалатын программаның компонавкасының керекті элементтерінен тұрады. Жіберу коды, басқару программаның кіріс нүктесіне берліген кезде орындалады (main, WinMain және т.б. функциялар). Олармен орындалатын есептердің арасында келесілерді атап кеуге болады:
- Орындалатын кітапхананың инициализациясы.
- C++ глобальды объектілерін конструкторлау.
- Керек ресурстардың болмауы кезінде программаны аяқтау.
- Орындалатын кітапхана көптеген жалпы міндетті процедуралардан тұрады, оларды кез келген программа шақырыла алады. Негізінен кітапханалар:
- Файлдарды басқарады.
- Жадыны басқарады.
- Деректерді ауыстырады және т.б. көтеген жұмыстар.
- Динамикалық қосылатын кітапханаларға тоқталатын болсақ - DLL, -программалаушының көз қарасымен олар әдеттегі статикалық компоновкаланатын объектілік кітапханалардан ерекшеленбейді. DLL-де орналасқан функциялар да басқа функциялар сияқты шақырылады. Шынында, "сыртынан" динамикалық кітапханалар орындалатын файлдар сияқты көрінеді; бұл кітапханалар кітапханашымен емес, ал компоновщикпен құрылады.
Compiler беті 2 суретте көрсетілген. Беттің төменгі бөлігінен сіз басқышты ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Желі сипатын бағалау
Android ОЖ қосымшаны құрастыру технологиясын қарастыру
Бағдарламалық қамтаманы жобалау
Android ОЖ
Android операциялық жүйесінің архитектурасы
Android OS жұмыс істеу принципі және Android OS қосымша құру
Медицинадағы автоматтандыру ақпараттандыру жүйесінің спецификасы мен өткізілген анализдердің ерекшеліктері
Геоақпарат ғылымының ТМД мен Қазақстанда даму тарихы мен деңгейі
CASE жабдықтары және CASE технологиялар
Кәсіпорынның қаржы бөлімі
Пәндер