Кіріспе

Компьютер ғылымының саласы. Бағдарламалау тілінің теориясы (PLT) – бағдарламалау тілдері деп аталатын формальді тілдерді жобалау, іске асыру, талдау, мінездемелеу және жіктеумен айналысатын компьютер ғылымының бір саласы. Бағдарламалау тілінің теориясы математика, бағдарламалық инженерия және тіл білімі сияқты басқа да салалармен тығыз байланысты. Осы салада көптеген академиялық конференциялар мен журналдар бар.

Тарих

Кейбір жағынан, бағдарламалау тілдері теориясының тарихы тіпті бағдарламалау тілдерінің өзінің дамуынан бұрын-ақ басталады. 1930 жылдары Алонзо Черч және Стивен Коул Клин жасаған лямбда-есептеуі кейбір мамандар тарапынан әлемдегі алғашқы бағдарламалау тілі деп есептеледі, бірақ ол бағдарламашылардың компьютер жүйесіне алгоритмдерді сипаттау құралы емес, есептеуді модельдеу мақсатында жасалған. Көптеген қазіргі заманғы функционалдық бағдарламалау тілдері лямбда-есептеуінің үстіне "жұқа ған" ретінде сипатталады, және олардың көптегенін оның арқасында оңай түсіндіруге болады. Бірінші бағдарламалау тілі – 1940 жылдары Конрад Цузе жасаған, бірақ 1972 жылға дейін көпшілікке мәлім болмаған (және 1998 жылға дейін іске асырылмаған) Plankalkül. Бірінші кеңінен танылған және сәтті жоғары деңгейлі бағдарламалау тілі – 1954 жылдан 1957 жылға дейін Джон Бэкус басқарыған IBM ғалымдарының тобы әзірлеген Фортран. Фортранның табысы "әмбебап" компьютерлік тілді жасау үшін ғалымдар комитетінің құрылуына әкелді; олардың еңбегінің нәтижесі ALGOL 58 болды. МТИ-дегі Джон Маккарти Лиспті жасады, ол академиялық ортада пайда болған алғашқы сәтті тіл. Осы бастапқы күш-жігердің табысымен бағдарламалау тілдері 1960 жылдары және одан кейін зерттеудің белсенді тақырыбына айналды.

Ішкі пәндер мен сабақтас салалар

Бағдарламалау тілі теориясының ішінде жатқан немесе оған зор әсер ететін бірнеше зерттеу салалары бар; олардың көпшілігі үлкен дәрежеде байланысты. Сонымен қатар, PLT математиканың көптеген басқа салаларын пайдаланады, оның ішінде есептеу теориясы, категория теориясы және жиын теориясы.

Ресми семантика

Формалды семантика – компьютерлік бағдарламалар мен бағдарламалау тілдерінің қызмет етуін формалды түрде сипаттау. Компьютерлік бағдарламаның семантикасын немесе "мағынасын" анықтаудың үш негізгі тәсілі – денотациялық семантика, операциялық семантика және аксиоматикалық семантика.

Тип теориясы

Тип теориясы – типтік жүйелерді зерттейтін ғылым; ол "бағдарламаның белгілі бір әрекеттерінің болмауын дәлелдеуге мүмкіндік беретін, сөз тіркестерін олар есептейтін мәндердің түрлеріне қарай жіктеу арқылы қолданылатын тиімді синтаксистік әдіс". Көптеген бағдарламалау тілдері олардың типтік жүйелерінің ерекшеліктерімен ажыратылады.

Бағдарламаны талдау және қайта құру

Бағдарламаны талдау – бағдарламаны қарастырып, оның маңызды ерекшеліктерін анықтаудың (мысалы, бағдарламалық қателердің белгілі бір түрлерінің жоқтығы) жалпы мәселесі. Бағдарламаны түрлендіру – бағдарламаны бір формадан (тілден) екінші формаға өзгерту процесі.

Бағдарламалау тілінің салыстырмалы талдауы

Салыстырмалы бағдарламалау тілдерін талдау, бағдарламалау тілдерін олардың ерекшеліктеріне сүйене отырып, түрлі топтарға жіктеуді мақсат етеді; бағдарламалау тілдерінің негізгі категориялары көбінесе бағдарламалау парадигмалары деп аталады.

Жалпы және метабағдарламалау

Метапрограммалау – жоғары деңгейдегі бағдарламаларды жасау, олар орындалғанда бағдарламаларды (мүмкін, басқа тілде немесе бастапқы тілдің ішкі жиынында) нәтиже ретінде тудырады.

Доменге тән тілдер

Домендік тілдер — нақты бір саланың мәселелерін тиімді шешу үшін құрылған тілдер.

Компилятор құрылымы

Компилятор теориясы – компиляторларды (немесе жалпы алғанда, аудармашыларды) жазу теориясы; бір тілде жазылған бағдарламаны басқа формаға аударатын бағдарламалар. Компилятордың жұмысы дәстүрлі түрде синтаксистік талдауға (сканерлеу және синтаксистік талдау), семантикалық талдауға (бағдарламаның не істеу керектігін анықтау), оптимизацияға (кейбір өлшемдер бойынша бағдарламаның өнімділігін жақсарту; әдетте орындалу жылдамдығы) және кодты құруға (кейбір мақсатты тілде балама бағдарламаны жасау және шығару; көбінесе процессордың командалар жиынтығы) бөлінеді.

Жүргізу уақыты бойынша жүйелер

Орындалу уақыты жүйелері – бағдарламалау тілінің орындалу ортасын және оның құрамдас бөліктерін, соның ішінде виртуалды машиналарды, қоқыс жинауды және сыртқы функция интерфейстерін әзірлеумен айналысады.

Журналдары, басылымдары және конференциялары

Конференциялар бағдарламалау тілдері саласындағы зерттеулерді ұсынудың басты алаңы болып табылады. Ең белгілі конференциялардың қатарында Бағдарламалау тілдерінің принциптері жөніндегі симпозиум (POPL), Бағдарламалау тілдерін жобалау және іске асыру (PLDI), Функционалдық бағдарламалау жөніндегі халықаралық конференция (ICFP), Объектіге бағытталған бағдарламалау, жүйелер, тілдер және қолданбалар жөніндегі халықаралық конференция (OOPSLA) және Бағдарламалау тілдері мен операциялық жүйелерге архитектуралық қолдау жөніндегі халықаралық конференция (ASPLOS) бар. PLT зерттеулерін жариялайтын маңызды журналдарға ACM Transactions on Programming Languages and Systems (TOPLAS), Journal of Functional Programming (JFP), Функционалдық және логикалық бағдарламалау журналы, және Жоғары ретті және Символдық есептеулер кіреді.