і мови похідні від них)
I) Похідні від мови С ++
1. На основі С ++:
1.1 Borland C ++, Watcom C ++ (застаріли)
1.2 Microsoft Visual C ++
1.3 Microsoft Visual C ++ .Net
1.4 Borland C ++ Builder
1.5 Borland C ++ Builder .Net
1.6 JavaScript [1] (спеціалізований мову, для розробки сторінок в Інтернеті)
2. На основі Java [2]:
2.1 Java і Java2
2.2 Microsoft Visual J ++
2.3 Microsoft Visual J # .Net
. На основі C #:
3.1 Microsoft Visual C # .Net
3.2 Borland C # Builder.Net
II) Похідні від мови Pascal
1 Borland Pascal, Turbo Pascal (застаріли)
2 Modula, Oberon, Component Pascal, Active Oberon, Zonnon (зараз непопулярні)
3 Borland Delphi
4 Borland Delphi .Net
III) Похідні від мови Basic
1 Microsoft Visual Basic
2 Visual Basic for Application
3 VBScript (спеціалізований мову, для розробки сторінок в Інтернеті)
4 Microsoft Visual Basic .Net
Стандартизація мов програмування
Мова програмування може бути представлений у вигляді набору специфікацій, що визначають його синтаксис і семантику.
Для багатьох широко поширених мов програмування створені міжнародні стандарти. Спеціальні організації проводять регулярне оновлення та публікацію специфікацій і формальних визначень відповідної мови. В рамках таких комітетів продовжується розробка і модернізація мов програмування і вирішуються питання про розширення або підтримки вже існуючих і нових мовних конструкцій.
Типи даних
Сучасні цифрові комп'ютери зазвичай є двійковими і дані зберігають у довічним (бінарному) коді (хоча можливі реалізації і в інших системах числення). Ці дані як правило відображають інформацію з реального світу (імена, банківські рахунки, вимірювання та ін.), Що представляє високорівневі концепції.
Особлива система, за якою дані організовуються в програмі, - це система типів мови програмування; Розробка та вивчення систем типів відома під назвою теорія типів. Мови можуть бути класифіковані як системи зі статичної типізацією і мови з динамічною типізацією.
Статично-типізовані мови можуть бути надалі поділені на мови з обов'язковою декларацією, де кожна змінна і оголошення функції має обов'язкове оголошення типу, і мови з виведеними типами. Іноді динамічно-типізовані мови називаються латентно-типізований.
Структури даних
Системи типів в мовах високого рівня дозволяють визначати складні, складені типи, так звані структури даних. Як правило, структурні типи даних утворюються як декартовій твір базових (атомарних) типів і раніше визначених складових типів.
Основні структури даних (списки, черги, хеш-таблиці, двійкові дерева і пари) часто представлені особливими синтаксичними конструкціями в мовах високого рівня. Такі дані структуруються автоматично.
Семантика мов програмування
Існує кілька підходів до визначення семантики мов програмування.
Найбільш широко поширені різновиди наступних трьох: операційного, дериваційного (аксіоматичного) і денотаціонного (математичного).
При описі семантики в рамках операційного підходу зазвичай виконання конструкцій мови програмування інтерпретується за допомогою деякої уявної (абстрактної) ЕОМ.
дериваційного семантика описує наслідки виконання конструкцій мови за допомогою мови логіки і завдання перед- і Післяумови.
Денотаціонная семантика оперує поняттями, типовими для математики - множини, відповідності, а також судження, затвердження та ін.
Парадигма програмування
Мова програмування будується відповідно до тієї чи іншої базовою моделлю обчислень і парадигмою програмування.
Незважаючи на те, що більшість мов орієнтоване на імперативну модель обчислень, задаваемую фон-неймановской архітектурою ЕОМ, існують і інші підходи. Можна згадати мови зі стековой обчислювальної моделлю (Форт, Factor, PostScript та ін.), А також функціональне (Лісп, Haskell, ML, F # та ін.) Та логічне програмування (Пролог) і мову РЕФА, заснований на моделі обчислень, введеної радянським математиком А.А. Марковим-молодшим.