Жүйелік бағдарламалау тілдері: анықтамасы, қолданылуы, жалпы мақсатты тілдерден айырмашылығы. Төмен деңгейдегі бағдарламалау, жүйелік бағдарламалық құралдар.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Компьютерлік бағдарламалау тілдерінің класы
Class of computer programming languages
Жүйелік бағдарламалау тілі – жүйелік бағдарламалау үшін қолданылатын бағдарламалау тілі; мұндай тілдер жүйелік бағдарламалық қамтамасыз етуді жазу үшін жасалған, бұл әдетте қолданбалық бағдарламалық қамтамасыз етумен салыстырғанда әртүрлі әзірлеу тәсілдерін қажет етеді. Эдсгер Дейкстра осы тілдерді машинаға бағытталған жоғары деңгейлі тілдер немесе мохол деп атаған. Жалпы мақсаттағы бағдарламалау тілдері әдетте, бірнеше платформада бірдей кодты пайдалануға мүмкіндік беретін, жалпы мүмкіндіктерге назар аударады. Мұндай тілдерге ALGOL және Pascal жатады. Бұл жалпылама қасиет көбінесе машинаның ішкі құрылысына тікелей қол жеткізуді шектеу арқылы жүзеге асырылады, бұл өнімділікке теріс әсер етеді. Жүйелік тілдер, керісінше, үйлесімділік үшін емес, өнімділік пен негізгі аппараттық құралдарға оңай қол жеткізу үшін жасалған, сонымен қатар құрылымдық бағдарламалау сияқты жоғары деңгейлі бағдарламалау ұғымдарын ұсынады. Мысалдарға ESPOL және SPL жатады, екеуі де синтаксисі бойынша ALGOL-ға ұқсас, бірақ олардың тиісті платформаларына бейімделген. Басқалары кросс-платформалық, бірақ BLISS, JOVIAL және BCPL сияқты аппараттық құралдармен тығыз жұмыс істеуге арналған. Кейбір тілдер жүйелік және қолданбалық салалардың арасындағы көпір болып табылады, осы екі қолданыс арасындағы алшақтықты қысқартады. C тілі – классикалық мысал, ол жүйелік және қолданбалық бағдарламалау үшін кеңінен қолданылады. Rust және Swift сияқты кейбір заманауи тілдер де осылай жұмыс істейді.
A system programming language is a programming language used for system programming; such languages are designed for writing system software, which usually requires different development approaches when compared with application software. Edsger Dijkstra referred to these languages as machine oriented high order languages, or mohol. General purpose programming languages tend to focus on generic features to allow programs written in the language to use the same code on different platforms. Examples of such languages include ALGOL and Pascal. This generic quality typically comes at the cost of denying direct access to the machine's internal workings, and this often has negative effects on performance. System languages, in contrast, are designed not for compatibility, but for performance and ease of access to the underlying hardware while still providing high level programming concepts like structured programming. Examples include ESPOL and SPL, both of which are similar to ALGOL in syntax but tuned to their respective platforms. Others are cross platform but designed to work close to the hardware, like BLISS, JOVIAL and BCPL. Some languages straddle the system and application domains, bridging the gap between these uses. The canonical example is C, which is used widely for both system and application programming. Some modern languages also do this such as Rust and Swift.
Ерекшеліктері
Қолданба тілдерінен өзгеше, жүйелік бағдарламалау тілдері машинаның физикалық жабдығына тікелей қол жеткізу мүмкіндігін көбінесе ұсынады: осы тұрғыдан алғанда, BCPL жүйелік бағдарламалау тілінің классикалық мысалы еді. Жүйелік бағдарламалау тілдерінде кіріс/шығыс (I/O) мүмкіндіктері жиі болмайды, себебі жүйелік бағдарламалық жоба әдетте өзінің I/O механизмдерін жасайды немесе қарапайым мониторлық I/O немесе экранды басқару мүмкіндіктерін пайдаланады. PL/I, C және Pascal тілдерінің кеңінен таралуымен жүйелік және қолданбалы бағдарламалау үшін қолданылатын тілдер арасындағы шекара уақыт өте келе нашарлады.
In contrast with application languages, system programming languages typically offer more direct access to the physical hardware of the machine: an archetypical system programming language in this sense was BCPL. System programming languages often lack built in input/output (I/O) facilities because a system software project usually develops its own I/O mechanisms or builds on basic monitor I/O or screen management facilities. The distinction between languages used for system programming and application programming became blurred over time with the widespread popularity of PL/I, C and Pascal.
Тарих
Алғашқы жүйелік бағдарламалық қамтамасыз ету негізінен ассемблер тілінде жазылды, себебі басқа амал болмады, сонымен қатар объектілік кодтың тиімділігі, компиляция уақыты және түзетудің қарапайымдығы сияқты себептер де болды. FORTRAN сияқты қолданбалы тілдер жүйелік бағдарламалау үшін қолданылды, бірақ олардың кейбір бөліктерін ассемблер тілінде жазу қажеттілігі әдетте сақталды.
The earliest system software was written in assembly language primarily because there was no alternative, but also for reasons including efficiency of object code, compilation time, and ease of debugging. Application languages such as FORTRAN were used for system programming, although they usually still required some routines to be written in assembly language.
Орта деңгейдегі тілдер
Орта деңгейдегі тілдер "жоғары деңгейдегі тілдің синтаксисі мен мүмкіндіктерінің көп бөлігіне ие, бірақ сонымен қатар тілде машиналық ерекшеліктерге тікелей қол жеткізуге мүмкіндік береді (құрастыру тілін де ұсынады)".
Mid level languages "have much of the syntax and facilities of a higher level language, but also provide direct access in the language (as well as providing assembly language) to machine features."