Еволюція та "природний відбір" базових концепцій мов програмування: на прикладах мов C, C++, Java та C# - Колодницький, М.М. (Інститут програмних систем НАН України, 2004)
Коротко нагадуються деякі важливі історичні події, що мали суттєвий вплив на формування концепцій сучасних мов програмування загального призначення. Розглядається набір фундаментальних конструкцій та концепцій, які є свого роду будівельними цеглинками вказаних у назві чотирьох мов. Пропонується систематизація такого набору, яка показує, як відображаються компоненти архітектури комп’ютера у відповідні концепції мов програмування. Дану систематизацію зручно взяти за основу для проведення порівняльного аналізу цих мов. Наводяться систематизовані порівняльні таблиці базових імперативних концепцій чотирьох мов, а також порівнюються реалізації об’єктно-орієнтованих конструкцій в мовах C++, Java 2 та C#. На основі таких матеріалів проводиться аналіз еволюції базових концепцій цих мов. Кратко напоминаются некоторые важные исторические события, оказавшие существенное влияние на формирование концепций современных языков программирования общего назначения. Рассматривается набор фундаментальных конструкций и концепций, которые есть своего рода строительными блоками указанных в названии четырех языков. Предлагается систематизация такого набора, которая показывает, как отображаются компоненты архитектуры компьютера в соответствующие концепции языков программирования. Данную систематизацию удобно взять за основу для проведения сравнительного анализа этих языков. Приводятся систематизированные сравнительные таблицы базовых императивных концепций четырех языков, а также сравниваются реализации объектно-ориентированных конструкций в языках C++, The paper starts with a brief reminder of those important milestones in the history of programming languages (PL), which had a significant impact on the modern concepts of general purpose PL. It is followed by the consideration of the fundamental constructions and concepts, which are sort of building blocks of the languages discussed. Along the consideration path, a systematic presentation of the concepts is introduced. The systematic presentation displays how the computer architecture constituents are being mapped into corresponding programming language concepts. The systematic presentation is, then, taken as a basis for the comparative study of the languages. The result of the study is presented in the imperative language fundamental concepts comparative tables for four languages along with the comparative analysis of object-oriented constructions implementation in C++, Java 2 and C#. The result presented is a kind of input for the evaluation of the evolution of the programming languages fundamental concepts performed in the last section of the paper.