Кіріспе
Бағдарламалық жасақтама әзірлеушілері басқа бағдарламалар мен қолданбаларды қолдау үшін пайдаланатын компьютерлік бағдарлама. Бағдарламалық жасақтама құралы немесе бағдарламалық жасақтаманы әзірлеу құралы – бағдарламалық жасақтама әзірлеушілері басқа бағдарламалар мен қолданбаларды құру, түзету, күтіп ұстау немесе басқаша қолдау үшін пайдаланатын компьютерлік бағдарлама. Бұл термин әдетте салыстырмалы түрде қарапайым бағдарламаларды білдіреді, олар бір тапсырманы орындау үшін біріктірілуі мүмкін, физикалық нысанды түзету үшін бірнеше қолды пайдалану сияқты. Ең негізгі құралдар – бастапқы код редакторы және компилятор немесе интерпретатор, олар кеңінен және үнемі қолданылады. Басқа құралдар тілге, даму әдістемесіне және жеке инженерге байланысты аз немесе көп қолданылады, көбінесе жөндеуші немесе профильдеуші сияқты нақты тапсырма үшін қолданылады. Құралдар жеке бағдарламалар болуы мүмкін, олар көбінесе командалық жолдан орындалады, немесе біріктірілген даму ортасы (IDE) деп аталатын бір үлкен бағдарламаның бөлігі болуы мүмкін. Көп жағдайда, әсіресе қарапайым қолдану үшін, құралдың орнына қарапайым, уақытша әдістер қолданылады, мысалы, жөндеушінің орнына басып шығару арқылы түзету, профильдеушінің орнына (бағдарламаның немесе кодтың бөлігінің) уақытын қолмен өлшеу немесе қателерді қадағалау жүйесінің орнына мәтіндік файлда немесе электрондық кестеде қателерді тіркеу. Құралдар мен қолданбалар арасындағы шекара шашыранды. Мысалы, әзірлеушілер құрал ретінде қарапайым деректер базасын (мысалы, маңызды мәндердің тізімін қамтитын файлды) үнемі пайдаланады. Дегенмен, толыққанды деректер базасы әдетте өз алдына қолданба немесе бағдарламалық жасақтама ретінде қарастырылады. Көп жылдар бойы компьютерлік көмекпен бағдарламалық жасақтаманы жасау (CASE) құралдары іздестірілді. Бірақ табысты құралдарды табу қиын болды. Бір жағынан, CASE құралдары дизайн мен архитектураны қолдауға, мысалы, UML сияқты, баса назар аударды. Бірақ ең табыстылары – IDE.
A programming tool or software development tool is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs, that can be combined to accomplish a task, much as one might use multiple hands to fix a physical object. The most basic tools are a source code editor and a compiler or interpreter, which are used ubiquitously and continuously. Other tools are used more or less depending on the language, development methodology, and individual engineer, often used for a discrete task, like a debugger or profiler. Tools may be discrete programs, executed separately – often from the command line – or may be parts of a single large program, called an integrated development environment (IDE). In many cases, particularly for simpler use, simple ad hoc techniques are used instead of a tool, such as print debugging instead of using a debugger, manual timing (of overall program or section of code) instead of a profiler, or tracking bugs in a text file or spreadsheet instead of a bug tracking system. The distinction between tools and applications is murky. For example, developers use simple databases (such as a file containing a list of important values) all the time as tools. However a full blown database is usually thought of as an application or software in its own right. For many years, computer assisted software engineering (CASE) tools were sought. Successful tools have proven elusive. In one sense, CASE tools emphasized design and architecture support, such as for UML. But the most successful of these tools are IDEs.
Адам тілінен компьютер тіліне аудару
Қазіргі заманғы компьютерлер өте күрделі, сондықтан оларды тиімді бағдарламалау үшін әртүрлі абстракциялар қажет. Мысалы, бағдарламаның екілік көрінісін жазудың орнына, бағдарламашы C, Java немесе Python сияқты бағдарламалау тілінде бағдарлама жазады. Ассемблерлер, компиляторлар және линкерлер сияқты бағдарламалау құралдары бағдарламаны адам жаза алатын және түсіне алатын бастапқы тілден компьютер орындай алатын биттер мен байттарға аударады. Түсіндіргіштер (интерпретаторлар) бағдарламаны жұмыс істеп тұрғанда, қажетті нәтижені алу үшін түсіндіреді. Бұл бағдарламалар көптеген анықталған және қайталанатын тапсырмаларды орындайды, олар адам орындағанда уақытты көп алады және қателерге әкелуі мүмкін, мысалы, бағдарлама бөліктерін жадқа орналастыру және линкер сияқты бағдарлама бөліктері арасындағы сілтемелерді түзету. Ал оптимизациялайтын компиляторлар бастапқы кодқа күрделі өзгерістер енгізе отырып, бағдарламаның орындалу жылдамдығын немесе басқа да сипаттамаларын жақсарта алады. Бұл бағдарламашыға машинаның егжей-тегжейімен айналыспай, бағдарламаның жоғары деңгейдегі, түсіндірмелік аспектілеріне көбірек назар аударуға мүмкіндік береді.
Бағдарлама туралы ақпаратты адамдарға жеткізу
Бағдарламалық жасақтаманың жоғары күрделілігіне байланысты, тіпті ең тәжірибелі бағдарламашы үшін де көптеген бағдарламаларды бірден түсіну мүмкін емес. Жоғары деңгейдегі бағдарламалау тілдері ұсынатын абстракциялар бағдарламашы жазған бастапқы код пен бағдарламаның нақты мінез-құлқы арасындағы байланысты түсінуді одан да қиындатады. Бағдарламадағы қателерді табу және бағдарламаны кеңейту кезінде жаңа қателердің пайда болуын болдырмау үшін бағдарламашы бағдарлама туралы түрлі ақпаратты көруге мүмкіндік беретін бағдарламалау құралдарын пайдаланады. Мысалы, жөндеу құралы (debugger) бағдарламашыға іске қосылып жатқан бағдарлама туралы ақпаратты, оны бағдарламалау үшін қолданылған бастапқы тіл арқылы алуға мүмкіндік береді. Жөндеу құралы компилятор сақтаған ақпаратты пайдаланып, нақты машинаның күйінен бастапқы бағдарламадағы айнымалының мәнін анықтай алады. Жадты жөндеу құралдары (memory debuggers) іске қосылып жатқан бағдарламалардың жадқа қатысты күмәнді немесе мүлдем дұрыс емес кірулерін тікелей көрсете алады, бұл қателер әдетте анықталмай қалады және бағдарламалардың істен шығуының жиі кездесетін себебі болып табылады.
IDE
Интегралды даму ортасы көптеген құралдардың мүмкіндіктерін бір пакетке біріктіреді. Олар, мысалы, нақты міндеттерді орындауды жеңілдетеді, сияқты белгілі бір жобадағы файлдардағы мазмұнды іздеу. IDE-лерді, мысалы, кәсіпорын деңгейіндегі қосымшаларды жасау үшін қолдануға болады. Әртүрлі бағдарламалау тілдері үшін IDE-лердің әр түрлі аспектілерін интеграцияланған даму орталарының салыстыруынан табуға болады.