Теорія мов програмування

Маленька грецька буква λ (лямбда) це неофіційний символ області теорії мови програмування. Використання походить від лямбда-числення, моделі обчислень, введеної Алонзо Черчем у 1930-х роках і широко використовується дослідниками мов програмування. Вона прикрашає обкладинку класичної книги «Структура та інтерпретація комп'ютерних програм», а також назва так званих «лямбда матеріалів», які написані Джеральдом Джей Зуссманом і Гай Стілом, розробників мови програмування Scheme.

Теорія мови програмування (англ. Programming language theory) — розділ комп'ютерних наук, який займається проєктуванням, аналізом, визначенням характеристик і класифікацією мов програмування, їх індивідуальних особливостей. Він торкається математики, програмування і лінгвістики. Це добре відома галузь інформатики, а також активна область досліджень, результати яких опубліковані в численних журналах, присвячених PLT, а також в загальних виданнях з інформатики та інженерної справи.

Історія

У деякому сенсі, історія теорії мови програмування передує навіть розвитку самих мов програмування. Лямбда-числення, розвинене Алонзо Черчем і Стівеном Коулом Кліні в 1930-х, на думку деяких, є першою в світі мовою програмування, навіть при тому, що воно було призначене більше для обчислювальних розрахунків, ніж засіб для програмістів, яке описує алгоритми комп'ютерної системи, Багато сучасних функціональних мов програмування легко описуються з точки зору лямбда-числення.

Першою мовою програмування, яка була винайдена, була Планкалкюль (нім.- обчислення планів), який була розроблена Конрадом Цузе в 1940-х, але не була відома суспільству до 1972 (і не була здійснена до 1998). Перша широко відома і успішна мова програмування — Фортран (1954—1957), яка розроблена командою дослідників IBM на чолі з Джоном Бекусом. Успіх Фортрану привів до формування комітету вчених, які намагалися розробити «універсальну» комп'ютерну мову. Результатом їх зусиль був АЛГОЛ 58. В той же час, Джон Маккарті із MIT розробив мову програмування Лісп (засновану на лямбда-численні), яка є першою успішною мовою з науковим походженням. З успіхом цих початкових зусиль мови програмування стали активної темою дослідження в 1960-х і після. Деякі інші ключові події в історії теорії мови програмування з тих пір:

1950-ті

  • Ноам Чомскі розробив ієрархію Чомскі в галузі лінгвістики. Це відкриття безпосередньо вплинуло на теорію мови програмування та інші галузі інформатики.

1960-ті

  • Мова Симула була розроблена Оле-Йоном Далем і Крістеном Нюгордом. Вважають, що це перший приклад об'єктно-орієнтованої мови програмування. Симула також ввела поняття співпрограми.
  • У 1964 Пітер Ландін вперше реалізував лямбда-числення Черча, що може бути використаним для моделювання мов програмування. Він представляє машину Secd, яка «інтерпретує» лямбда-вирази.
  • У 1965 році Ландін вводить оператор J, який є формою продовження.
  • У 1966 році Ландін у своїй статті «Наступні 700 мов програмування» презентував ISWIM, абстрактну комп'ютерну мову програмування. Це мало великий вплив в подальшій розробці мов програмування, що ведуть до Haskell.
  • У 1966 році Коррадо Бем представив мову програмування Coach
  • У 1967 році Крістофер Стрейчі опублікував свій важливий набір конспектів лекцій щодо основних понять мов програмування, введення R-значення термінології, L-значення, параметричний поліморфізм, а також спеціальний поліморфізм.
  • У 1969 році Дж Роджер Гіндлі публікує основну тип-схему[що це?] об'єкта у комбінаторній логіці, пізніше узагальнену в алгоритм виведення типів Гіндлі-Мілнера.
  • У 1969 році Тоні Гоар вводить логіку Гоара, форму аксіоматичної семантики.
  • У 1969 році Вільям Елвін Говард помітив, що систему доведення «високого рівня», іменовану природним виведенням, можна безпосередньо інтерпретувати в надрукований варіант моделі обчислень, відомий як лямбда-числення. Пізніше це отримало назву "відповідність Каррі — Говарда". 

1970-ті

  • У 1970 році Дана Скотт вперше опублікувала свою роботу по денотаціонной семантиці.
  • У 1972 році було розроблені логічне програмування і пролог. Це дало можливість комп'ютерним програмам виражатися через математичку логіку.
  • У 1974 році Джон С. Рейнольдс виявляє систему F. Це було уже винайдено математичним логіком Жан-Ів Жираром ще в 1971 році.
  • З 1975 року, Сассмен і Стіл розробляю мову програмування Scheme і мову Лісп, яка включає лексичну зону видимості, єдиний простір імен і елементи з моделі Actor, включаючи продовження першого класу.
  • Бакус, в 1977 році лекції премії Тюрінга, розкритикував поточний стан індустріальних мов і запропонував новий клас мов програмування. В даний час відомі як функціонально-рівневі мови програмування.
  • In 1977, Гордон Плоткін презентував програмування обчислювальних функцій, абстрактно набрана мова
  • У 1978 році Робін Мілнер вводить алгоритм виведення типів Гіндлі-Мілнера для мови програмування ML. Теорія типу стала застосовуватися як дисципліна мов програмування, цей додаток привів до величезних досягнень в області теорії типу протягом багатьох років.

1980-ті

  • У 1981, Гордон Плоткін опублікував свій документ на структурованій операційній семантиці.
  • У 1988 році Жиль Кан опублікував свою статтю про нормальну семантику.
  • Команда вчених  Xerox PARC під керівництвом Алана Кея розробили Smalltalk, об'єктно-орієнтована мову, яка широко відома своїм інноваційним розробницьким середовищем .
  • Там з'явилися обробки обчислень: обрахунок взаємодіючих систем Робіна Мілнера, модель комунікативних послідовних процесів Тоні Гоара, а також аналогічні моделі паралелізму(наприклад, модель Actor Карла Хьюітта.
  • У 1985, випуск Miranda запалює навчальний інтерес до раніше відкладених чистих функціональних мов програмування. Був створений комітет для визначення відкритого стандарту, що призвів до випуску Haskell 1.0 в 1990 році.
  • Бертран Мейер створив методологію проєктування (за договором) та включив її в мову програмування Eiffel.

1990-ті

Субдисципліни і суміжні області

Є кілька областей дослідження, які або лежать в теорії мови програмування, або які надають великий вплив на неї; багато з них мають важливе значення. Крім того, PLT використовує багатьо інших областей математики, включаючи теорію обчислюваності, теорію категорій і теорію множин.

Формальна семантика

Формальна семантика це формальний опис поведінки комп'ютерних програм і мов програмування. Три загальних підходи до опису семантики або «сенс» комп'ютерної програми — денотаційна семантика, операційна семантика і аксіоматична семантика.

Теорія типів

Теорія типів це вивчення типових системі; яка є «слухняним синтаксичним методом доказу недостатності поведінки конкретної програми шляхом класифікації фраз за видами значень, які вони обчислюють». Багато мов програмування відрізняються характеристиками їх систем типів.

Аналіз програми та трансформація

Аналіз програми це загальна проблема вивчення програми і визначення ключових характеристик (наприклад, відсутність помилок у програмі). Перетворення програми це процес перетворення програми з однієї форми (мови) в іншу форму.

Порівняльний аналіз мови програмування

Порівняльного аналізу мови програмування прагне класифікувати мови програмування на різні типи залежно від їх характеристик. Загальні категорії мов програмування часто називають парадигмами програмування.

Загальне і метапрограмування

Метапрограмування — генерація програм вищого порядку, які, коли виконуються, породжують програми (можливо на іншій мові або в підмножині початкового мови) як результат своєї роботи.

Предметно-орієнтовані мови

Предметно-орієнтовані мови- мови, побудовані для ефективного вирішення завдань в конкретній предметній області.

Тлумачення компілятора

Теорія компілятора це теорія написання компіляторів (або в більш загальному плані, трансляторів). Це програми, які переводять програму, написану однією мовою, в іншу форму. Дії компілятора традиційно розбиті на синтаксичний аналіз (сканування і синтаксичний аналіз), семантичний аналіз (визначення того, що програма повинна робити), оптимізацію (підвищення продуктивності програми, що зазначено в деякій метриці; як правило, швидкість виконання) і генерації коду (генерація і висновок еквівалентної програми в тій чи іншій мові перекладу, часто набір інструкцій процесора).

Системи виконання

Системи виконання належать до розробки середовищ виконання мови програмування та їх компонентів, включаючи віртуальні машини, збірку «сміття» і зовнішні функціональні інтерфейси.

Журнали, публікації та конференції

Конференції є основним місцем для презентування досліджень в мовах програмування. Найбільш відомі конференції включають це Симпозиум про принципи мов програмування (POPL-Symposium on Principles of Programming Languages), Конференція про проєктування та впровадження мов програмування(PLDI-Conference on Programming Language Design and Implementation), міжнародна конференція функціонального програмування(ICFP-International Conference on Functional Programming), та міжнародна конференція обєктно-орієнтованого програмування, систем, мов та додатків (OOPSLA-the International Conference on Object Oriented Programming, Systems, Languages and Applications).

Відомі журнали, які публікують PLT: the ACM Transactions on Programming Languages and Systems (TOPLAS), Journal of Functional Programming (JFP), Journal of Functional and Logic Programming, and Higher-Order and Symbolic Computation.

Примітки

http://www.c2.com/cgi/wiki?ModelsOfComputation [Архівовано 9 липня 2016 у Wayback Machine.]

Посилання

Read other articles:

English footballer (1880-1946) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Alf Common – news · newspapers · books · scholar · JSTOR (February 2009) (Learn how and when to remove this template message) Alf Common Personal informationFull name Alfred CommonDate of birth (1880-05-25)25 May 1880Place of birt...

 

غابي إسبينو Gaby Espino   معلومات شخصية اسم الولادة ريا غابريلا إسبينو غوجرو الميلاد 26 سبتمبر 1976 (العمر 47 سنة)ماراكاي  الجنسية  فنزويلا لون الشعر شعر بني  الزوج سابق كريستوبال لاندير (26 مايو 2007 - مارس 2011) العشير خوان كارلوس كنيلا  الأولاد نيكولاس كنيلا اسبينو 12 فبراير ...

 

Peter Carlsson Peter Mikael Carlsson (* 19. Oktober 1970 in Södertälje, Provinz Stockholms län (Schweden)) ist ein schwedischer Wirtschaftsmanager und CEO von Northvolt.[1] Inhaltsverzeichnis 1 Ausbildung 2 Berufliche Entwicklung 3 Northvolt 4 Auszeichnungen 5 Privates 6 Einzelnachweise Ausbildung Carlsson wuchs in Södertälje und in Växjö auf. Von 1989 bis 1994 studierte er Wirtschaftswissenschaften an der Technische Universität Luleå und macht dort seinen Abschluss als Magis...

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Angkatan Pujangga Baru – berita · surat kabar · buku · cendekiawan · JSTOR Sutan Takdir Alisjahbana (Salah satu pemimpin Angkatan Pujangga Baru) Angkatan Pujangga Baru adalah angkatan yang hadir untuk menggan...

 

お願い:年月日へのリンクはガイドラインに則り、過度な使用は避けてください。(Wikipedia:記事どうしをつなぐ#リンクすべきでないものを参照)生年月日や没年は収集されていますが、単なる出演日や放送日や活動日、発表日へのリンクは意味を成しません。例:終戦記念特別番組・災害追悼イベントなど年月日リンクへ跳ぶ意味を持つものに限定ください。 土曜プレ

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2022. Beliau adalah Al-Asla' bin Syarik bin 'Auf At-Tamimi Al-A'raji (Bahasa Arab : الأسلع بن شريك بن عوف التميمي الأعرجي), salah satu sahabat Nabi yang termasuk sebagai pelayan/khadim dari Nabi sendiri, bertugas untuk men...

For the class of antioxidant compounds that share the same chemical skeleton, see stilbenoid. (E)-Stilbene Names IUPAC name (E)-Stilbene[1] Preferred IUPAC name 1,1′-[(E)-Ethene-1,2-diyl]dibenzene[1] Other names Bibenzylidenetrans-α,β-Diphenylethylene(E)-1,2-Diphenylethylene((1E)-2-Phenylvinyl)benzenetrans-Stilbene[(E)-2-Phenylethenyl]benzene Identifiers CAS Number 103-30-0 Y 3D model (JSmol) Interactive imageInteractive image Beilstein Reference 1616740 ChEBI CHEBI:3...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Isny im Allgäu – news · newspapers · books · scholar · JSTOR (September 2020) (Learn how and when to remove this template message) You can help expand this article with text translated from the corresponding article in German. (March 2011) Click [show] fo...

 

British politician Jack Ashley redirects here. For the Australian rules footballer, see Jack Ashley (Australian footballer). For the English footballer, see Jack Ashley (footballer, born 1912). The Right HonourableThe Lord Ashley of StokeCH PCAshley in 2010Member of the House of LordsLord TemporalIn office10 July 1992 – 20 April 2012 Life PeerageMember of Parliament for Stoke-on-Trent SouthIn office31 March 1966 – 16 March 1992Preceded byEllis SmithSucceeded byGeorge...

F-16 Fighting Falcon (kiri), P-51D Mustang (bawah), F-86 Sabre (atas), dan F-22 Raptor (kanan) terbang dalam formasi yang mewakili empat generasi pesawat tempur Amerika. Pesawat tempur adalah pesawat militer sayap tetap yang dirancang terutama untuk pertempuran udara-ke-udara. Dalam konflik militer, peran pesawat tempur adalah untuk membangun superioritas udara dalam ruang pertempuran. Dominasi wilayah udara di atas medan perang memungkinkan pengebom dan pesawat serang untuk terlibat dalam pe...

 

Indian Odia-language television channel Television channel KALINGA TVକଳିଙ୍ଗ ଟିଭିCountryIndiaHeadquartersBhubaneswar, Odisha, IndiaProgrammingLanguage(s)OdiaPicture format720p (HDTV)OwnershipOwnerKalinga Media & Entertainment Pvt LtdHistoryLaunched17 April 2015LinksWebsitewww.kalingatv.com Kalinga TV (Odia: କଳିଙ୍ଗ ଟିଭି) is an Odia language 24-hour cable and satellite news channel in Bhubaneswar, Odisha, India. The channel was launched in April 2015 b...

 

Filmmaking industry in Nepal Kollywood Film Industry redirects here. For Tamil, see Kollywood (Tamil cinema). For other uses, see Kollywood (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Cinema of Nepal – news · newspapers · books · scholar · JSTOR (September 2022) (Learn how and when to r...

Online Mind Mapping Software launched in 2007 MindMeisterDeveloper(s)MeisterLabs GmbHOperating systemweb, iOS, AndroidAvailable in12 languagesList of languagesEnglish, German, French, Spanish, Portuguese, Dutch, Danish, Russian, Japanese, Italian, Simplified Chinese, KoreanTypeWeb productivity toolsLicenseFreemiumWebsitemindmeister.com MindMeister is an online mind mapping application that allows its users to visualize, share and present their thoughts via the cloud.[1] MindMeister wa...

 

Yuval Yairi (Hebrew: יובל יאירי; born 1961 in Tel-Aviv, Israel) is an Israeli artist, using photography, drawing and video. Yairi Studied visual communication at the WIZO College Haifa (1984-1988), was the director of a design studio in Jerusalem (1988-1999), produced and directed short films and documentaries until 2004. Since 2004 Yairi devotes his work to research and artistic activity, primarily in mediums of photography, drawing and video. The subjects of Yairi's work relate to ...

 

Belgian Army general This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Gérard Leman – news · newspapers · books · scholar · JSTOR (January 2007) (Learn how and when to remove this template message) Gerard Mathieu Joseph Georges LemanBorn(1851-01-08)8 January 1851Liège, BelgiumDied17 October 1920(1920-10-17) ...

Bài này viết về thủ đô của Hungary. Đối với các định nghĩa khác, xem Budapest (định hướng). Budapest—  Thành phố  —Thủ đô của Hungary Budapest főváros Từ phía trên, trái sang phải: Toà nhà Nghị viện Hungary, Fisherman's Bastion, Tượng Tự do trên Đồi Gellért, Hősök tere tại Công viên Thành phố, Nhà hát Quốc gia, Vương cung thánh đường Thánh Stephen và trung tâm thành phố v...

 

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Maimun Zubair – berita · surat kabar · buku · cendekiawan · JSTOR Kyai HajiKH Maimun ZubairLahir(1928-10-28)28 Oktober 1928Rembang, Hindia BelandaMeninggal6 Agustus 2019(2019-08-06) (umur 90)[1]M...

 

American politician Skip FinnMember of the Minnesota Senatefrom the 4th districtIn officeJanuary 8, 1991 – July 1, 1996 Personal detailsBornHarold Raymond Finn[1](1948-10-27)October 27, 1948Cass Lake, Minnesota, U.S.DiedMay 17, 2018(2018-05-17) (aged 69)Minneapolis, Minnesota, U.S.Political partyMinnesota Democratic–Farmer–Labor PartySpouse Teri Backer ​(m. 1980⁠–⁠2018)​Children2Alma materUniversity of Minnesota Law ...

Thanga MaganPosterNama lainTamilதங்கமகன் Sutradara Velraj Produser G. N. Anbu Chezhiyan Ditulis oleh Velraj PemeranDhanushSamantha Ruth PrabhuAmy JacksonPenata musikAnirudh RavichanderSinematograferR. VelrajPenyuntingRajesh KumarPerusahaanproduksiGopuram FilmsDistributorSri Green ProductionsWunderbar FilmsTanggal rilis 18 Desember 2015 (2015-12-18) [1]Durasi121 minutesNegara India Bahasa Tamil Thanga Magan adalah sebuah film drama berbahasa Tamil India...

 

Boxing competitions Boxing at the 2019 European GamesVenueUruchie Sports PalaceDates21–30 JuneCompetitors317[1] from 44 nations← 2015 (Games)2017 (men's ECh)2023 (Games)2022 (men's ECh) → Boxing at the2019 European GamesQualificationMenWomen49 kg52 kg51 kg56 kg57 kg60 kg60 kg64 kg69 kg69 kg75 kg75 kg81 kg91 kg+91 kgvte At the 2019 European Games in Minsk, matches across fifteen weight categories in boxing were contested between 21 and 30 Jun...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!