Lazarus проекти амалиётидаги (Free Pascal) дастурлаш тили Delphi дастурлаш муҳитида GNU/Linux, Mac OS X ва Windows CE платформалари учун дастурлар яратишга имконият беради. Visual Basic – Microsoft корпорацийдан дастурлаш тили ва унинг учун дастурлаш муҳитдир. У BASICdan дан кўп тушунчалар олди ва тез расмли интерфейс билан дастурлар тараққиёт таъминлайди. Охирги версия 6.0 1998 йилда релиз келишди. Microsoft дан ворис Visual Basic .NET 2002 йилда пайдо бўлди.
Java дастурлаш тили — энг яхши дастурлаш тилларидан бири бўлиб унда корпоратив даражадаги маҳсулотларни (дастурларни) яратиш мумкин. Бу дастурлаш тили Oak дастурлаш тили асосида пайдо бўлди. Oak дастурлаш тили 90-йилларнинг бошида Sun Microsystems томонидан платформага (Операцион тизимга) боғлиқ бўлмаган ҳолда ишловчи янги авлод ақлли қурилмаларини яратишни мақсад қилиб ҳаракат бошлаган эди. Бунга эришиш учун Sun ҳодимлари C++ ни ишлатишни режалаштирдилар, лекин баъзи сабабларга кўра бу фикридан воз кечишди.Оак мувофақияциз чиқди ва 1995-йилда Sun унинг номини Java га алмаштирди, ва уни WWW ривожланишига ҳизмат қилиши учун маълум ўзгаришлар қилишди. Java Объектга Йўналтирилган Дастурлаш (OOP-object oriented programming) тили ва у C++ га анча ўхшаш.Энг кўп йўл қўйилдиган хатоларга сабаб бўлувчи қисмалари олиб ташланиб, Java дастурлаш тили анча соддалаштирилди. Java код ёзилган файллар (*.java билан ниҳояланувчи) компилациядан кейин байт код (bytecode) га ўтади ва бу байт код интерпретатор томонидан ўқиб юргиздирилади.
C++ — турли мақсадлар учун мўлжалланган дастурлаш тили. 1979-йили Bell Labs Biyarne Stroustrup томонидан C дастурлаш тилининг имкониятларини кенгайтириш ва OOP (object Oriented Programming) хусусиятини киритиш мақсадида ишлаб чиқарилган. Бошида “C with Classes” деб аталган, 1983-йили ҳозирги ном билан яъни C++ деб ўзгартирилган. C++ C да ёзилган дастурларни компиляция қила олади, аммо C компилятори бу хусусиятга эга эмас. C++ тили операцион тизимларга алоқадор қисимларни, клиент-сервер дастурларни, ЭҲМ ўйинларини, кундалик эҳтиёжда қўлланиладиган дастурларни ва шу каби турли мақсадларда ишлатиладиган дастурларни ишлаб чиқаришда қўлланилади.
Дастурлаш тизимлари
Дастурлаш тизимлари тил муаммоларини хал қилувчи дастурларни бирлаштирадилар ва дастурий таъминотни ишлаб чикаришга мўлжалланган.
Дастурлаш тизимларига:
трансляторлар;
кутубхона дастурлари;
редакторлар;
компановщиклар;
загрўзчиклар;
отладчиклар кирадилар.
Дастурларга хизмат кўрсатувчи тизимлар – бу махсус сервис дастурлар бўлиб, улар ёрдамида операцион тизимни ўзига хизмат кўрсатиш мумкин.
Транслятор – бу дастур берилган дастурлаш тилидаги кирувчи дастур матнини унга эквивалент бўлган чиқишдаги натижавий тилга ўгиради.
Компилятор – бу транслятор бўлиб, у берилган дастур мантнини унга эквивалент бўлган машина командаларидаги объект дастурга ўгиради.
Интерпретатор – бу дастур бўлиб, у берилган дастур матнини бирданига қабул қилади ва бажаради (натижавий коди бўлмайди).
Компилятор формал тиллар нуқтаи назаридан куйидаги 2 асосий функцияларни бажаради:
у кирувчи дастур матни тили учун англовчи хисобланади (кирувчи дастур занжирлар генератори бўлиб хисобланади);
натижавий дастур тили учун генератор хисобланади (англовчи бўлиб хисоблаш тизими хисобланади)
Компиляция чизмаси
Л ексик таҳлил – бу компилятор бўлаги бўлиб, дастур литераларини ўкийди ва улар орқали кирувчи тил лексемаларини кўради.
Синтактик таҳлил – таҳлил босқичидаги компиляторнинг асосий бўлагидир. Тилнинг синтактик конструкцияларини ажратади.
Семантик таҳлил – бу компилятор бўлаги бўлиб, кирувчи тил семантикаси нуқтаи назаридан дастур матнини текширади.
Кодни генерациялашга тайёргарлик – натижавий дастурнинг синтези билан боғлик бўлган харакатларга тайёргарлик бажарилади.
Кодни генарациялаш – натижавий кодни бевосита хосил этиш – кодни оптимизациялашни ўз ичига олган асосий фаза.
Идентификаторлар жадвали – кирувчи дастур элементлари хақидаги маълумотларни сақловчи берилганлар тўплами. Бир неча хил идентификаторлар жадвали мавжуд.
Ўтиш – бу ташўи хотирадан берилганларни охирги ўкиш жараёни, уларни қайта ишлаш ва ташқи хотирага жойлаштириш. Компиляциянинг бир фазаси - бир ўтишдир.
Асосий функциялари ва таркиби
Тизимли қайта ишловчи дастурларнинг асосий функциялари ва таркиби;
Ассемблер;
Алоқа редакторлар ва юкловчилар;
Макропроцессорлар;
Трансляторлар (таржимонлар);
Тил конверторлари;
Редакторлар ва матн процессорлари;
Отладчиклар;
Дизассемблер;
Кросс-системлар;
Кутубхоначилар.
1. Ассемблер – бу шундай тизимли қайта ишловчи дастур бўлиб, у бирон бир машинага мўлжалланган дастурлаш тилида ёзилган дастур матнини объект кодига айлантириш учун мўлжалланган (Ассемблер тилидаги матн директивалар ва исмлардан ташқил топади, машина коди эса факат байтлардан ташқил топади.).
Изох: Объект коди ёки алоқа редакторининг киришига ёки юкловчининг киришига келиб тушади.
2. Алоқа редакторлари – бу шундай тизимли қайта ишловчи дастур бўлиб, улар Ассемблер ёрдамида алоҳида олинган объект модулларини ягона модулга бирлаштиришга мўлжалланган. Алоқа редактори чегарасида барча адрес йўналишлари ягона адреслар фазосига ўрнатилади.
Алоҳида объект модулларида хар бир объект модули алоқа редакторининг чиқишини юкловчининг кириши деб ҳисоблайди.
Юкловчилар дастурни қайта ишловчи дастурга юклайдилар ва унга бошқарувни узатадилар. Яна шу билан бирга улар юкловчиларни боғловчи алоҳида модулларни бирлаштирадилар.
Изох: Юкловчилар жой ўзгартирувчи ёки абсолют бўлишлари мумкин.
абсолют юкловчилар хар бир дастурни биттадан фиксирланган адрес бўйича юклайдилар;
жой ўзгартирувчи юкловчилар дастурни хотирадаги ихтиёрий бўш жойга жойлаштиришлари мумкин.
3. Макропроцессорлар– бу шундай дастурларки, улар белгили қайта ишлашга мўлжалланган бўлиб, бу жараёнда қандайдир қиска фразаларга (макрочақириқларга) узун фразалар (макрокенгайтмалар) мос қўйилади. Макропроцессорнинг киришида қандайдир макрочақириқлардан олинган матн бўлиб, чиқишида эса – макрокенгайтмалар бўлади.
4. Трансляторлар (таржимонлар) бир тилда ёзилган матнни бошқа тилга ўгирадилар. Трансляторларнинг қуйидаги кўринишларини ажратиб кўрсатиш мумкин:
компиляторлар: киришида юқори даража тилида ёзилган дастур матни, чиқишида машина кодларидаги алоқа редакторига ёки юкловчига ўзатиладиган дастур.
Хусусиятлари: таржима функцияларини аниқ бўлиниши ва таржима қилинган функцияларни бажарилиши.
интерпретаторлар – функциялар бўлинмайдилар, балки мослаштириладилар. Интерпретатор таржимани ва бажарилишни қаторлаб ва кооператив бажаради. Улардан ёзилган дастурни диалог асосида қайта ишлашда фойдаланиш қулай.