Кіріспе
Көптеген салаларда қолданылатын бағдарламалау тілі. Компьютерлік бағдарламалық жасақтамада, жалпы мақсаттағы бағдарламалау тілі (GPL) – әртүрлі қолданба салаларында бағдарлама құруға арналған бағдарламалау тілі. Керісінше, доменге қатысты бағдарламалау тілі (DSL) белгілі бір саланың ішінде қолданылады. Мысалы, Python – GPL, ал SQL – реляциялық деректер базасын сұрау үшін DSL.
In computer software, a general purpose programming language (GPL) is a programming language for building software in a wide variety of application domains. Conversely, a domain specific programming language (DSL) is used within a specific area. For example, Python is a GPL, while SQL is a DSL for querying relational databases.
Тарих
Алғашқы бағдарламалау тілдері ғылыми есептеулер (сандық есептеулер) немесе коммерциялық деректерді өңдеу үшін, компьютерлік аппараттық құралдар сияқты жасалған. Fortran және Algol сияқты ғылыми тілдер қозғалмалы нүктелік есептеулер мен көпөлшемді массивтерді қолдады, ал COBOL сияқты бизнес-тілдер тұрақты өрістік файл форматтары мен дерек жазбаларын қолдады. IPL V және LISP сияқты символды тізімдерді өңдеуге, COMIT – жолдарды өңдеуге, APT – сандық басқарылатын машиналарға арналған мамандандырылған тілдер көп қолданылмады. Пойнтерлерді басқаруды қажет ететін жүйелік бағдарламалау көбінесе ассамблер тілінде жасалатын, бірақ JOVIAL кейбір әскери қолданыстар үшін пайдаланылды. 1964 жылы жарияланған IBM System/360 ғылыми және коммерциялық қолданыстарды қолдайтын біріктірілген аппараттық архитектура ретінде жасалған. IBM оны үшін PL/I-ді ғылыми, коммерциялық және жүйелік бағдарламалауды қолдайтын бірыңғай, жалпы мақсаттағы тіл ретінде әзірледі. Шындығында, PL/I-дің кіші жиынтығы Multics операциялық жүйесі үшін стандартты жүйелік бағдарламалау тілі ретінде қолданылды. PL/I-ден бастап ғылыми және коммерциялық бағдарламалау тілдерінің арасындағы шекара азайды, көптеген тілдер екеуіне де қажетті негізгі мүмкіндіктерді қолдайды, ал арнайы файл форматтарын өңдеудің көп бөлігі арнайы деректер базасын басқару жүйелеріне жүктелді. 1960 жылдары дискретті оқиғаларды модельдеу үшін GPSS және Simula, бағдарламалауды оқыту үшін MAD, BASIC, Logo және Pascal, жүйелік бағдарламалау үшін C, интерактивті бағдарламалау үшін JOSS және APL\360 сияқты көптеген мамандандырылған тілдер дамытылды. Бағдарламалау тілі нақты бір міндет үшін жасалуы мүмкін, бірақ бастапқы саласынан тыс қолданылып, осылайша жалпы мақсаттағы бағдарламалау тілі деп есептелуі мүмкін. Мысалы, COBOL, Fortran және Lisp бастапқыда DSL ретінде (бизнес өңдеу, сандық есептеу және символдық өңдеу үшін) құрылды, бірақ уақыт өте келе GPL болды. Керісінше, тіл жалпы қолдану үшін жобаланып, бірақ іс жүзінде нақты бір салаға ғана қолданылуы мүмкін. Мәселеге жақсы сай келетін бағдарламалау тілі, ол жалпы мақсаттағы тіл немесе DSL болсын, қажетті егжей-тегжейлілікті азайтуы керек, сонымен бірге проблемалық доменде жеткілікті мәнерлі болуы керек. Атауынан көрініп тұрғандай, жалпы мақсаттағы тіл «жалпы» болып табылады, себебі ол доменге тән белгілерді ұсына алмайды, ал DSL-ді осы мәселені шешу үшін әртүрлі проблемалық домендерде жобалауға болады. DSL әдетте GPL-ге қарағанда кішірек, абстракциялардың аз санымен ұсынылады, бірақ кейбір DSL-де шын мәнінде толыққанды GPL субтіл ретінде болады. Бұл жағдайларда DSL-дер GPL-дің мәнерлі күшімен қатар доменге тән мәнерлілікті ұсына алады. Жалпы мақсаттағы бағдарламалау тілдерінің барлығы Тьюринг толық, яғни олар теориялық тұрғыдан кез келген есептеу мәселесін шеше алады. Доменге тән тілдер көбінесе сондай-ақ Тьюринг толық, бірақ олар осыған ғана шешілмейді.
Артықшылықтары мен кемшіліктері
Жалпы мақсаттағы бағдарламалау тілдерін бағдарламашылар көбірек қолданады. Зерттеуге сәйкес, 2021 жылы C, Python және Java ең көп қолданылатын бағдарламалау тілдері болды. Жалпы мақсаттағы бағдарламалау тілдерін салалық тілдерге қарағанда пайдаланудың бір себебі – осы тілдерді көптеген адамдар біледі, бұл жаңа тілді үйрену қажеттігін жояды. Сонымен қатар, көптеген тапсырмалар үшін (мысалы, статистикалық талдау, машиналық оқыту сияқты) кеңінен сыналып, оңтайландырылған кітапханалар бар. Теориялық тұрғыдан алғанда, мұндай кітапханалардың болуы жалпы мақсаттағы және салалық тілдер арасындағы қашықтықты қысқартуға мүмкіндік беруі керек. Керісінше, C операциялық жүйелер, құрылғы драйверлері, қолданбалы бағдарламалық жасақтама және кіріктірілген жүйелер сияқты есептеу салаларының көптеген түрлерінде қолданылды. C өзінің әмбебаптығының арқасында түрлі салаларда қолдануға жарамды. Ол сөзді тиімді пайдалану, ағымды басқару, дерек құрылымдары және операторлардың бай жиынтығын ұсынады, бірақ пайдаланушыларды тек бір жағдайда ғана қолдануға шектемейді. Осының нәтижесінде, оны жасаушылары алғаш рет Unix операциялық жүйесінің ядросын қайта жазу үшін қолданғанмен, ол қолданбаларды әзірлеуге, кіріктірілген жүйелерге (мысалы, микропроцессорларды бағдарламалау), бейне ойындарға (мысалы, Doom) және тағы да басқаларға оңай бейімделді. Бүгінде C ең танымал және кеңінен қолданылатын бағдарламалау тілдерінің бірі болып табылады.