Мови програмування високого і низького рівнів. Програми для перших ЕОМ складалися машинною мовою, вельми далекою від понять, якими оперує людина.
Алфавіт машинної мови складається тільки з двох символів {0, 1}. Для складання програм на такій мові була потрібна досить висока кваліфікація. Програмісти, зацікавлені в полегшенні своєї праці, і виробники ЕОМ зацікавлені в розширенні ринку, стали шукати вихід. Першим кроком на шляху створення мов, що містять поняття, близькі поняттям людини, стали мови, що перекладають символічні імена в машинні коди (асемблер).
До мов програмування низького рівня належать мови асемблера — машинно-залежні мови, що описують дії в термінах команд процесора. Для кожного типу процесора існує своя мова асемблера, тому для перенесення програми на асемблері на іншу апаратну платформу її потрібно майже повністю переписати.
Пізніше були створені програми, що транслюють арифметичні вирази (автокоди), і, нарешті, у 1958 році вступив у дію транслятор Фортрана — першої мови високого рівня (МВР). Мови високого рівня наближені до природних понять. Ці мови є машинно-незалежними. Із розвитком і поширенням комп’ютерів намітився двоякий процес: поява спеціальних (Пролог) та універсальних (Паскаль, Сі) мов.
Процедурні і непроцедурні мови. Програма, написана процедурною мовою, описує, як розв’язувати, використовуючи при цьому такі основні поняття, як слідування, розгалуження, цикл. Програма, написана непроцедурною мовою, описує, що робити, використовуючи такі поняття, як підстановка, галуження, рекурсія.
Системи програмування. Для зручності створення програм створюються інтегровані середовища програмування — системи, які об’єднують редактор текстів програм, транслятор, налагоджувач (наприклад Turbo Pascal, Turbo С, Turbo Basic). Отримали поширення системи візуального програмування — засоби, за допомогою яких можна швидко створювати програми шляхом візуального проектування макета в графічному вигляді (наприклад, Visual Basic, Visual С, Delphi).