Чи є html мовою програмування, savepearlharbor

Останнім часом все частіше і частіше різні інтернет ресурси влаштовують холівари на тему: чи є HTML мовою програмування чи ні. Як водиться, аргументів на користь обох точок зору призводять чимала кількість, тому я вирішив поставити для себе крапку в цьому непотрібному суперечці.

Визначення мови програмування.

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

Так сказано в Вікіпедії. і більшість інших ресурсів або повністю вживає це визначення, або вільно викладає його без втрати сенсу. Розглянемо детальніше складові частини визначення ЯП:

Більш простою мовою це може бути викладено так:

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

Ось так громіздко і негарно вийшло, зате без складних слів. Ми повернемося до цього класичного трохи пізніше.

Види мов програмування.

Чи є html мовою програмування, savepearlharbor

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

Розглянемо ближче визначення різних типів за версією Вікіпедії.

  • Аспектно-орієнтоване програмування (АОП) - парадигма програмування, заснована на ідеї поділу функціональності для поліпшення розбиття програми на модулі.
  • Структурне програмування - методологія розробки програмного забезпечення, в основі якої лежить уявлення програми у вигляді ієрархічної структури блоків. Запропоновано в 70-х роках XX століття Е. Дейкстрой, розроблена і доповнена Н. Віртом.
  • Процедурне програмування - програмування на імперативний мовою, при якому послідовно виконуються оператори можна зібрати в підпрограми, тобто більші цілісні одиниці коду, за допомогою механізмів самої мови [1].
  • Логічне програмування - парадигма програмування, заснована на автоматичному доказі теорем, а також розділ дискретної математики, що вивчає принципи логічного висновку інформації на основі заданих фактів і правил виведення. Логічне програмування засноване на теорії та апараті математичної логіки з використанням математичних принципів резолюцій.
  • Об'єктно-орієнтоване програмування (ООП) - парадигма програмування, в якій основниміконцепціямі є поняття об'єктів і класів. У разі мов з прототіпірованії замість класів використовуються об'єкти-прототипи.
  • Функціональне програмування - розділ дискретної математики і парадигма програмування, в якій процессвичісленія трактується як обчислення значень функцій в математичному розумінні останніх (на відміну від функцій як підпрограм в процедурному програмуванні).
  • Мультипарадигмальності мову програмування - як правило, мова програмування, який був розроблений спеціально як інструментмультіпарадігмального програмування, тобто образотворчі можливості якого спочатку передбачалося успадкувати від декількох, найчастіше неспоріднених мов.
  • Езотеричний мову програмування - мова програмування, розроблений для дослідження меж можливостей розробки мов програмування, для доказу потенційно можливої ​​реалізації певної ідеї (так зване «доказ концепції», англ. Proof of concept), в якості твору програмного мистецтва [en], або в якості жарти (комп'ютерного гумору).

Імперативний і декларативний підхід

Чи є html мовою програмування, savepearlharbor

Всі мови програмування діляться на дві групи: декларативні і імперативні.

Програма імперативною мовою програмування з математичної точки зору являє собою спільне рішення поставленого завдання, іншими словами, відповідь на питання «як робити?». Це послідовність команд, які повинен виконати виконавець.

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

Повнота по Тьюрингу.

В теорії обчислюваності виконавець (безліч обчислює елементів) називається Тьюринг-повним. якщо на ньому можна реалізувати будь-яку обчислюваної функції. Іншими словами, для кожної обчислюваної функції існує обчислює її елемент (наприклад, машина Тьюринга) або програма для виконавця, а всі функції, які обчислюють безліччю обчислювачів, є обчислюваної функції (можливо, при деякому кодуванні вхідних і вихідних даних).
Назва пішла від Алана Тьюринга. який придумав абстрактний обчислювач - машину Тьюринга і дав визначення безлічі функцій, обчислюваних за допомогою машин Тьюринга.
Іншими словами мова є повним по Тьюрингу. якщо будь-яка обчислювана функція, яка Вам потрібна, може бути записана на цій мові і вирішена його виконавцем.

Чи є html мовою програмування, savepearlharbor

Чи не повні по Тьюрингу мови також існують, але так як їх створюють в основному в академічних цілях, то вони маловідомі і широко не застосовуються.

Відповімо на кілька запитань:

HTML - це мова?

Так. Він має властивості, притаманні мовам.

HTML - відповідає визначенню мови програмування?

HTML - є Тьюринг-повним мовою?

Ні. Простіше кажучи на HTML можна зробити тільки деяку обмежену сукупність дій, інтерпретованих браузером.

Чи можна називати HTML мовою програмування?

Залежно від контексту - так, можна. Але при цьому слід пам'ятати, що з таким же успіхом можна назвати ЯП і CSS і XML і SQL. Іншими словами дані мови формально можуть бути названі мовами програмування, але тільки з певною часткою скептицизму і з повним розумінням того, що ці мови не задовольняють всім вимогам.

Чи є HTML мовою програмування?

Ні. Завдання звичайного мови програмування в обробці даних, а завдання HTML в відображенні даних. Він не є мовою програмування і на ньому не можна зробити обчислень.

Висновок: Ми можемо назвати HTML мовою програмування тільки в контексті формальної полеміки. На ділі вона є мовою гіпертекстової розмітки і ні чим більше. Але читач повинен розуміти, що якщо немає чітко прописаних стандартів, то ніхто не забороняє зробити мову, ідентичний по синтаксису з HTML, але інтерпретується зовсім по іншому таким чином, щоб він був повним по Тьюрингу.

Схожі статті