Компьютерные языки программирования: виды, описание, применение и отзывы. Принципы работы компьютера. Языки программирования

Chapter 2: Что такое компьютерный язык?

Video: What is a computer language?

Что является сутью компьютерного языка? Зачем он нужен компьютерам? Почему в мире так много компьютерных языков?

Как для понимания принципов работы двигателя не нужно водить машину, так и для понимания ответа на эти вопросы не нужно программировать. Но для того, чтобы улучшить своё знание темы, необходимо понять как работает компьютер. Здесь даётся краткое объяснение.

2.1 Краткая история программирования

Компьютеры являются цифровой электроникой. Их восприятие данных заключается в наличии или отсутствии напряжения в проводах. Отсутствие напряжение выглядит для компьютера как ноль, наличие - как единица. На самом деле, компьютеры не знают других цифр, так что в итоге ему приходится комбинировать 0 и 1 для составления чисел.

Раньше, особые переключатели использовались для загрузки единиц и нулей в компьютерную память. На этой картинке, принадлежащей Wikimedia Commons , изображён Altair 8800. Переключатели на передней панели использовались для загрузки программы. Огни показывали результат. Монитора не было. Figure 2.1: Altair 8800

Каждый набор из переключателей представляет из себя номер. Каждый номер представляет данные или инструкцию, которую с ними должен сделать компьютер. Эта система, использующая только нули и единицы для репрезентации чисел называется бинарной(двоичной) системой исчисления. Этот тип компьютерного языка называется 1GL, или язык программирования первого поколения.

Числа в двоичной системе исчисления чаще всего представлены в комбинациях из четырёх цифр. Например:

1010 0010 0011

Усовершенствованием ввода через переключатели было начало использования шестнадцатеричных кодов. Десятичные числа, используемые в посведневной жизни, состоят из цифр 0-9. Шестнадцатеричная система исчисления состоит из цифр 0-9, а также из символов от A до F для репрезентации набора четырёх переключателей, с возможными значениями 0-15.

Двоичная Десятичная Шестнадцатиричная
0 0 0
1 1 1
10 2 2
11 3 3
100 4 4
101 5 5
110 6 6
111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F
1 0000 16 10
1 0001 17 11

Следующее видео немного подробнее объясняет, как работает система исчисления: Video: Decimal, binary, and hexadecimal systems

Для облегчения ввода программ, более поздние компьютеры позволяли вводить программы с помощью языка assembly. Каждая команда использовала мнемонику, а программа, называемая компилятором, превращала мнемоники в числа, обозначающие команды. Такой тип языка называется 2GL, или язык второго поколения.

Ниже преведена часть программы на языке assembly, предоставлено Wikimedia Commons .
Figure 2.2: Пример языка assembly

Хотя это было улучшением, этого всё ещё было недостаточно для того, чтобы сделать процесс программирования лёгким. Следующее поколение языков предоставило абстракции более высокого уровня. Первые языки третьего поколения: (COBOL , FORTRAN и LISP) были намного проще для понимания и программирования.

Языки второго и третьего поколения использовали программу, называемую компилятор . Компилятор берёт программу, введённую пользователем (так называемый исходный код ) и превращает её в машинный код. Программист запускает машинный код. Оригинальный исходный код не запускается.

Если программа использует исходный код из разных источников, они могут быть связаны вместе в один с помощью программы, называемой linker (линкер, редактор связей, компоновщик) . Редактор связей работает с машинным кодом, сгенерированным компилятором, для создания финальной версии программы. Эта финальная версия - то, что запускает пользователь. Исходный код для этого не нужен. Figure 2.3: Компиляторы и редакторы связей

Недостатком машинного языка является то, что программа будет работать только на определённых типах компьютера. Программы, скомпилированные для компьютеров с Windows скорее всего не будут работать на компьютерах Apple Macintosh и наоборот.

Потому что весь процесс компиляции и связи может быть сложным для начинающих программистов, некоторые языки стали использовать интерпретаторы . Эти программы спотрят на исходный код и преобразуют его в машинный код на ходу. Это также позволяет одним и тем же программам запускаться на Windows, Mac, Unix компьютерах, в случае, если на каждой из этих платформ есть доступ к интерпретатору.

Недостатком использования интерпретатора является то, что он медленнее, чем оригинальный, машинный язык. Figure 2.4: Интерпретатор

Python является примером интерпретируемого языка. Легче писать на Python"е, чем на C, но Python работает медленнее и требует интерпретатора для успешной работы.

  1. Приведите пример числа в двоичной системе исчисления. (Хотя число "1" может быть двоичным, десятичным или шестнадцатиричным, попытайтесь придумать пример, который показывает разницу между системами исчислений.)
  2. Дайте пример числа в десятичной системе исчисления.
  3. Дайте пример числа в шестнадцатиричной системе исчисления.
  4. Переведите числа 1, 10, 100, 1000 и 10000 из двоичной в десятичную систему исчисления.
  5. Что такое компилятор?
  6. Что такое исходный код?
  7. Что такое машинный язык?
  8. Что является языком программирования первого поколения?
  9. Что является языком программирования второго поколения?
  10. Что является языком программирования третьего поколения?
  11. Что такое интерпретатор?

You are not logged in. Log in and track your progress.

Когда-то по долгу службы мне приходилось оказывать консультации по вопросам приобретения компьютера. Сейчас я несколько отошел от этой темы, но все же ко мне иногда обращаются с просьбой помочь выбрать компьютер или ноутбук. Иными словами - "помоги, ты ж программист" :) Специально для вас эта статья!

ВАЖНОЕ ЗАМЕЧАНИЕ: я намеренно не буду называть ни цифры (мегагерцы, гигабайты), ни названия производителей. Я изложу только основные принципы, которые помогут вам самим определиться и с цифрами и с ценами. Времена меняются, компьютерная техника развивается семимильными шагами, но основные принципы остаются. Еще стоит отметить, что статья предназначена для простых пользователей, использующих компьютер как рабочий инструмент. Я старался изъясняться доступным языком, вплоть до объяснения на пальцах, практически исключив цифры, поэтому просьба профессиональным пользователям и системным администраторам, которые вдруг это прочтут отнестись с пониманием и с юмором:)

Компьютер или ноутбук? А может планшета хватит?

Прежде всего нужно определиться, какой тип компьютера нам нужен - портативный или стационарный. Нельзя дать однозначного ответа, что лучше - у каждого есть своя сфера применения, для которой он подходит лучше всего.

Планшетный компьютер хорош тем, что всегда под рукой. Он скрасит ваше время ожидания в очереди или в дороге и позволит провести его более плодотворно - почитать новости или просто книгу, посмотреть фильм, послушать музыку, в конце концов, поиграть в игру. Кто-то использует планшет для работы - лично я оценил пользу этого устройства, когда занялся продажами инфопродуктов. У всех планшетов есть функция GPS, которая не даст потеряться в чужом городе или стране. То есть, планшетный компьютер - штука, безусловно, полезная. Однако в виду отсутствия полноценной клавиатуры планшет не подойдет тем, кому нужна "печатная машинка".

Ноутбук - это полноценный компьютер с экраном и клавиатурой и беспроводной мышкой, позволяющими комфортно работать практически во всех приложениях, но его постоянно таскать с собой, скорее всего, не получится - нужна сумка или рюкзак. Даже недорогой современный ноутбук имеет все нужные характеристики и возможности, которые могут быть востребованы в домашней или офисной работе - офис, интернет, электронная почта, социальные сети и т.д. Все вроде неплохо, но ноутбук трудно "апгрейдить" - как правило, возможности модернизации ограничиваются лишь возможностью нарастить оперативную память (и то не всегда до желаемого объема) и установить новый жесткий диск.

Стационарный компьютер - системный блок, монитор, клавиатура, мышь, колонки. При всей своей "архаичности" и громоздкости стационарный компьютер, тем не менее, имеет массу преимуществ перед портативными устройствами. Самая главная - большая гибкость конфигурации. По сути, это конструктор, который можно собирать самостоятельно, подобрав такие детали, которые подойдут наилучшим образом для ваших задач. Например, для видеомонтажа желательно иметь два жестких диска - для исходников и для готового видео (попробуйте найти ноутбук с двумя жесткими дисками!) Если вы меломан, вы можете установить в компьютер высококачественную звуковую карту, если заядлый игрок - мощную видеокарту. Если что-то сломалось - большинство железок можно поменять самому, вооружившись отверткой. При покупке ноутбука приходится выбирать между уже готовыми конфигурациями, причем, если вам нужен большой по объему жесткий диск, придется раскошелиться заодно и за игровую видеокарту, поскольку при увеличении одного параметра почти всегда "растут" и все остальные - частота процессора, объем памяти, жесткого диска, видеокарта.

Заблуждения покупателей

Прежде чем купить ПК (не важно, стационарный или ноутбук), нужно развеять в себе некоторые заблуждения. Существует непонятно откуда взявшиеся, но очень распространенные ошибочные мнения на этот счет:

  • Компьютер для работы и учебы дорогой, а для игр можно подешевле;
    Это не так. Системные требования игр намного больше, чем у офисных программ. Для работы в Word, Excel, 1С и пр. более чем достаточно самого дешевого ПК, стоимостью в 250-300 долларов (за системный блок). В то время как стоимость игрового компьютера может стремиться к нескольким тысячам долларов. В то же время, игры намного более требовательны к производительности ПК. Есть случаи, в которых для работы требуется мощный компьютер (о них будет рассказано чуть позже), но они редки.
  • Чтобы работать в интернет, нужен мощный компьютер.
    Чтобы найти нужную информацию, проверить электронную почту, пообщаться по аське, видео и т.д. достаточно самого дешевого компьютера. Некоторая "мощность" нужна для показа анимации, но любой современный компьютер с этой задачей легко справляется. Гораздо важнее наличие высокоскоростного канал связи. Даже старенький Пентиум-3, подключенный к "100-мегабитному интернету", будет работать в интернете гораздо быстрее, чем современный компьютер с 4-ядерным процессором, подключенный через медленный канал.
  • Для просмотра фильмов требуются мощный процессор и видеокарта.
    Это не так. Помню, много лет назад фильмы DivX и DVD прекрасно шли на Duron с частотой 900 мегагерц. С тех пор производительность компьютеров выросла в разы, а форматы, в которых записываются фильмы на диски, не претерпели практически никаких изменений. Исключение составляет разве что видео высокого разрешения (1080 строк, Full HD), для воспроизведения которого нужна бОльшая вычислительная мощность. По личному опыту скажу, что для воспроизведения видео в высоком разрешении вполне достаточно мощности процессора работающего на частоте 1.8ГГц и видеокарты начального уровня.
  • Для любых игр обязателен мощный компьютер
    Зависит от того - какие игры вы предпочитаете. Если современные 3-мерные бродилки, гонки, стратегии, то да. Если же вас больше интересуют логические игры, то они прекрасно заработают на самом дешевом ПК. Старые 3-мерные игры (если им лет 5) также будут прекрасно работать на недорогом ПК. То же самое касается подавляющего большинства браузерных игр (в соцсетях).

Для каких программ (не игр!) реально нужна большая вычислительная мощность?

Ниже приведены основные ресурсоемкие задачи (по мере увеличения системных требований).

  • Профессиональная работа с 2D графикой. Это обработка «плоских» изображений - фотографий, векторной графики, верстка, дизайн и т.д. В этом случае вам понадобится более мощный процессор и увеличенный объем оперативной памяти. Также для работы с графикой, равно как и всех остальных задач, необходим качественный монитор с большой диагональю (не меньше 23 дюймов).
  • Профессиональное программирование, работа с базами данных, решение сложных математических задач. Имеется в виду разработка серьезных приложений с использованием современных средств разработки, а не с Turbo Pascal или Borland C++ выпуска 1990-го года, которые до сих пор изучают на информатике в школах и на первых курсах вузов. Требования к компьютеру те же, что и при работе с 2D-графикой, за исключением случая, если вы являетесь разработчиком 3D-приложений - нужна еще мощная видеокарта (но тогда я удивляюсь, зачем вы это читаете? :)
  • Видеомонтаж, кодирование видео. Мощность процессора особенно актуальна, если собираетесь монтировать фильмы в разрешении 4К. К требованиям добавляется увеличенная емкость жесткого диска. А еще лучше - установка 2 жестких дисков (исходные данные на одном диске, результат на другом, такое разделение заметно ускорит работу).
  • Профессиональная работа с 3D-графикой. Здесь к требованиям добавляется мощная видеокарта, функции которой будут использоваться для ускорения рендеринга.

Серверные задачи, вроде баз данных, сетевые сервисы, оставим в покое - их выполнение на домашнем компьютере встречается крайне редко.

Для каких игр нужен мощный компьютер?

Как уже было сказано выше, исключительно для 3-мерных игр, c момента выхода которых прошло не более 3 лет. Для аркадных и логических игр вроде тетриса, ксоникса, шариков, а так же старых (но тем не менее интересных) бродилок и стратегий, особая мощность не нужна. Вообще у каждой игры есть минимальные системные требования, которые указывают, какими характеристиками должен обладать компьютер, чтобы на нем можно было играть в эту игру. Чтобы играть в эту игру с максимальными настройками графики и звука - умножьте ее минимальные системные требования в 2 раза.

Сводная таблица - зависимость выполняемых задач от стоимости системного блока

Здесь показано, насколько влияет мощность компьютера (а следовательно и его универсальность) на цену. Естественно, таблица приблизительная.

Стоимость системного блока: 250-300$ 400-500$ 800$ и более
Работа в офисных приложениях + + +
Работа в Интернет, с электронной почтой, скачивание файлов + + +
Прослушивание музыки + + +
Просмотр фильмов + + +
Игры с несложной графикой (Quake3, Heroes3-4, Zuma, шарики, пасьянсы, и пр. + + +
Хранение и просмотр, несложная коррекция цифровых фотографий + + +
Ведение бухгалтерии + + +
Видеомонтаж (для дома, для семьи / профессиональный) +/- +/+ +/+
Профессиональная обработка фотографий высокого разрешения - + +
Программирование несложных задач (лабораторные, курсовые) + + +
Создание сайтов + + +
Профессиональное программирование (создание коммерческих продуктов, решение сложных математических задач) - + +
Современные компьютерные игры - - +
Профессиональная работа с 3D-моделированием - - +

Из таблицы видно, что для большинства повседневных задач вполне достаточно компьютера младшей ценовой категории. Это так называемый «офисный компьютер». Компьютер для дома лучше выбирать из ценовой категории 400-500 долларов за системный блок, а если есть желание играть в современные игры, придется раскошелиться на 800-1000 долларов за системный блок.

Устройства - нужные и не очень. И если нужные, то сколько?

Компьютер, как известно состоит из множества устройств, которые несут определенные функции. Некоторые устройства критически важные, то есть без них компьютер просто не будет работать. Некоторые выполняют вспомогательные функции, тем самым расширяя возможности компьютера.

Процессор

Часто этим словом называют сам системный блок. Это неправильно. Процессор представляет собой небольшую микросхему размером 3 *3 см, а то и меньше. Это «мозг» компьютера. Основной характеристикой процессора, определяющего его быстродействие, является тактовая частота. Чем она больше, тем больше производительность.

Процессор

Процессоры для домашних ПК бывают одноядерные и многоядерные. Многоядерный процессор внешне выглядит так же как и одноядерный, но по сути представляет собой 2 или более процессоров, заключенных в один корпус. При равной тактовой частоте многоядерный процессор обладает гораздо большей производительностью, чем одноядерный. Но это не означает, что, например, 2-ядерный процессор ровно в 2 раза быстрее, чем одноядерный. Разница в производительности зависит от выполняемых задач. При работе в Интернет или при создании документов в Word вы этой разницы не почувствуете вообще. Если будете заниматься обработкой фото-, видеоматериала, то действительно, разница будет ощутима, равно как и в компьютерных играх.

Процессор при работе выделяет большое количество тепла. Для его охлаждения необходимо обеспечить отвод этого тепла. При выборе системы охлаждения обращайте внимание на максимальную частоту процессора, на которую она рассчитана, а также на уровень шума (указано в характеристиках). Приемлемым можно считать уровень шума в 22-23 дБ. Если меньше - то отлично. Если больше, то вполне возможно, вам этот шум будет мешать. Радиаторы с медным основанием обеспечивают лучший теплоотвод, чем с алюминиевым. Вентиляторы на шарикоподшипниках чуть шумнее, чем на подшипниках скольжения, но намного долговечнее.

Что лучше - Intel или AMD?

Между поклонниками и тех и других изделий вот уже второй десяток лет идут настоящие войны на интернет-форумах. Я в свое время тоже принимал участие в таких религиозных войнах, но вскоре понял, что это лишь пустая трата времени. Главное не то, процессор какого производителя стоит "под капотом" ПК, а то, насколько сбалансирована конфигурация компьютера .

Исторически сложилось, что процессоры AMD дешевле, чем Intel. По производительности можно сказать следующее. Если вам нужен недорогой компьютер, стоит серьезно задуматься о том, чтобы его собрать именно на базе процессора AMD, а на сэкономленные деньги приобрести, например, видеокарту помощнее. В этом случае играть в игры будет комфортнее, чем на компьютере со сверхмощным процессором, но слабой видеокартой.

Если нужен компьютер класса Hi-End и цена вас не особо волнует, ориентируйтесь на платформу Intel. Главное не забыть, что для обеспечения сбалансированности конфигурации желательно приобрести мощную видеокарту (которая стоит сопоставимо с процессором) и другие компоненты, которые не будут тормозить эту систему - быстрая память, качественная системная плата, быстрый жесткий диск, мощный блок питания.

Память

Прежде чем говорить продавцу «Мне нужно, чтобы в компьютере было много-много памяти», давайте определимся, какая бывает память? Чтобы понять, какая бывает память и чем она отличается, представьте себе ситуацию. Она может показаться абсурдной, но она весьма показательна.

Вы сидите за столом и работаете с бумажными документами (формата А4). Документы хранятся в ящике стола. Площадь стола такова, что позволяет положить на нем всего один лист. Держать лист в руках нельзя - только на столе, либо в ящике. Это вас устраивает до тех пор, пока вам нужно работать одновременно только с одним документом. И вот возникает необходимость одновременной работы с двумя документами. Если площадь стола будет прежней, то вам придется постоянно перекладывать эти документы из ящика на стол и обратно. Это очень неудобно. Работа будет протекать очень медленно и утомительно. Но стоит увеличить площадь стола в 2 раза, как работа ускорится. Если увеличить в 4 раза, то она ускорится лишь в том случае, если вам нужно работать одновременно с 3-4 документами. На скорость же работы с 2 документами это увеличение площади стола никак не повлияет. И так далее. Таким образом, появляется разумный предел, до которого можно увеличивать площадь стола исходя из ваших задач.

А теперь проведем аналогию приведенного примера с устройством компьютера.

Человек , работающий за столом играет роль процессора . Он обрабатывает информацию, взятую из документов, а так же вносит в них какие-то изменения. Причем человек может запоминать наиболее часто повторяющиеся фрагменты текста, чтобы каждый раз не бегать глазами из одного документа в другой и не доставать их из ящика. В этом суть работы кэш-памяти - встроенной в процессор памяти небольшого объема, но со сверхбыстрым доступом, которая используется для хранения часто используемых данных и команд.

Поверхность стола - это оперативная память . В ней располагаются те данные, которые в настоящее время обрабатываются процессором. Скорость доступа к данным в оперативной памяти высока, но намного меньше скорости доступа к кэш-памяти. Процессор может напрямую работать только с данными из оперативной памяти (равно как и человек не может читать и вносить изменения в документ не вытаскивая его из ящика на поверхность стола). Увеличение объема оперативной памяти ускоряет работу компьютера. Но увеличивать ее сверх разумного предела нет смысла - разницу не почувствуете. Необходимый объем оперативной памяти рассчитывается исходя из системных требований программ, которые вы намерены использовать. Для комфортной работы желательно иметь объем памяти вдвое больший, чем требует самая «тяжелая» программа (не забываем, что можно запускать сразу несколько программ, каждой из которых нужно место в оперативной памяти).

Ящик стола , в котором хранятся документы - это жесткий диск (винчестер) . Доступ к нему самый медленный (в 10 и более раз медленнее, чем к оперативной памяти). Зато он обладает таким объемом, который может вместить информацию в сотни и даже тысячи раз большую, чем в оперативной памяти. К тому же, жесткий диск является энергонезависимым носителем, то есть при отключении питания информация, записанная на нем, никуда не теряется. Данные же в оперативной памяти и в кэш-памяти процессора при отключении питания теряются.


Оперативная память


Жесткий диск

Выводы

  • Чем больше объем кеш-памяти, тем быстрее процессор (при той же тактовой частоте) может обрабатывать данные.
  • Чем больше объем оперативной памяти (так же обозначаемой как ОЗУ, RAM), тем комфортнее будет работа - программы грузятся быстрее, компьютер реагирует на действия пользователя с минимальной задержкой. В некоторых случаях, увеличение объема оперативной памяти ускоряет работу больше чем установка более мощного процессора. Однако существует предел, больше которого память наращивать бессмысленно.
  • Чем больше объем жесткого диска, тем больше данных и программ можно записать и установить на компьютер.

Для чего нужны SSD-накопители?

В последнее время большое распространение получили твердотельные накопители или SSD. По сути дела, это флешка большого объема и производительности, которая устанавливается внутрь системного блока и распознается системой как несъемный жесткий диск.

От обычных жестких дисков SSD отличаются меньшим объемом, но гораздо большей скоростью обмена данными. Одно из наиболее эффективных решений придать старому компьютеру бодрости - установить в него SSD и использовать его в качестве системного диска. Для полноценной работы SSD-накопителя желательно, чтобы системная плата поддерживала протокол SATA-3, но даже при использовании SATA2 твердотельный диск работает заметно быстрее, чем обычный "винчестер".

Еще у SSD есть недостаток - память имеет ограниченное количество циклов записи, поэтому срок службы накопителя в среднем меньше, чем у обычных HDD. В обычных условиях его хватит лет на 5, может больше. Наиболее разумным решением является использование SSD-накопителя совместно с обычным жестким диском. На SSD ставится система и прикладные программы, на HDD хранятся ваши данные. Это даст заметный выигрыш в скорости работы компьютера - проверено на собственом опыте.

Системная (материнская) плата

Не надо экономить на материнской плате! Очень часто в готовые компьютеры, продающиеся в магазинах установлены самые дешевые материнки. В рекламе и ценниках эта информация как правило не отображается. На работе ПК это как правило тоже не отображается (в течение гарантийного срока). Но пользователя может ожидать неприятный сюрприз в 2 случаях: когда нужно воткнуть в компьютер какую-то дополнительную плату, но вставлять ее некуда - слотов расширения мало и все они заняты. Во вторых, видимо, производители материнских плат очень мудро обозначают срок гарантии - 1-2 года. Я в своей практике встречал множество случаев, когда на 2-3 летнем компьютере выходила из строя материнская плата. Причем в 90% случаев, компьютер уже собранным в магазине и в нем были материнские платы младших серий, а зачастую и устаревшей модели (на момент покупки). Это означает, что в нее установлены процессор, память и, часто, видеокарта старого поколения, которые уже не продаются. Из-за этого вместе с вышедшей из строя системной платой приходится менять и процессор и память, и видеокарту. Такое восстановление бывает сравнимо по стоимости со стоимостью нового компьютера.

Практически все современные системные платы имеют интегрированный звук, видеокарту, сетевую карту - то есть все что нужно для нормальной работы. Если на выбранной вами плате нет какого-то интегрированного устройства - не беда, все эти устройства можно установить отдельно в слоты расширения, главное, чтобы их было достаточное количество. Как правило, устройства, докупаемые отдельно лучше, чем те, что интегрируются в системную плату.

Приемлемый диапазон цен на системную плату - 80-100 долларов. Дороже плату есть смысл брать лишь в том случае, если вы намерены выжимать из компьютера максимум производительности, то есть заниматься разгоном (на свой страх и риск).

Видеокарта

Мощная и, соответственно, дорогая видеокарта нужна только для игр и специфических задач вроде проектирования 3-мерных моделей.

Ничего конкретного советовать не буду, модели меняются одна за другой, за прогрессом в этой области не угонишься. В большинстве же случаев вполне достаточно недорогой видеокарты, возможно, даже интегрированной на системную плату. Видеокарта, способная удовлетворить среднего геймера стоит порядка 150-200 долларов. Если у вас запросы к графике выше среднего - готовьтесь раскошелиться на 300 и более долларов.

Производительность видеокарты определяет детализация и плавность перемещения картинки в компьютерных играх. Если производительность мала, то при большой детализации картинка будет двигаться рывками.

Производительность компьютера в игре оценивается частотой смены кадров (FPS - Frames per second, кадров в секунду). Для комфортной игры значение FPS должно быть не менее 60. При FPS=40 уже заметны, небольшие рывки в движении.

Иногда считают, что производительность компьютера в играх определяет только объем видеопамяти. Это не совсем так. Кроме нее очень важным компонентом видеосистемы является графический процессор. Видеопамять используется только для хранения текстур, графический процессор же отвечает за построение из этих текстур готовой 3-мерной картинки на экране. Чем больше производительность графического процессора, тем качественнее игровая картинка и больше плавность перемещения.

Таким образом, видеокарта стоимостью 60 долларов с 512 мегабайтами памяти будет слабее карты за 150 долларов с памятью 256 мегабайт.

В современные ПК можно устанавливать сразу несколько видеокарт, в этом случае их "мощность" суммируется. Однако это больше используется "майнерами", нежели "геймерами". Майнинг - добыча криптовалюты за счет предоставления вычислительных мощностей своего ПК для распределенных вычислений. Особые энтузиасты создают целые "фермы" для майнинга. Не берусь судить, насколько это сейчас выгодно, так как наслышан историй, что заработанных денег едва хватает чтобы покрыть расходы на электроэнергию. Уверен, есть и более успешные попытки, но лично я ни от кого из знакомых о них не слышал.

Корпус

Практически все комплектующие внутри компьютера можно заменять с течением времени на более современные, но есть две вещи, которые покупаются «всерьез и надолго». Это корпус, компьютера и монитор.

Несмотря на распространенное мнение «корпус - все равно какой, лишь бы был красивый», есть множество нюансов, на которые нужно обращать внимание, подбирая корпус для компьютера. Как бы это не было банально сказано, корпус должен справляться с 3 задачами: электропитание, обеспечение охлаждения, обеспечение механической прочности конструкции.

За электропитание отвечает блок питания. Именно от его способности выдавать стабильное напряжение питания на различные компоненты ПК зависит надежность компьютера в работе. Мощность современных блоков питания от 350-450 Вт. Качество блока питания можно косвенно по его массе. Чем он тяжелее, тем больше в нем элементов, фильтрующих помехи идущие по электросети, и, следовательно, он лучше. Не забывайте, чем больше производительность компьютера и чем больше в нем потребителей электроэнергии, тем мощнее должен быть блок питания.

Корпус внутри должен быть достаточно просторным, чтобы обеспечить прохождение потока воздуха мимо радиатора системы охлаждения процессора. Иногда потребуется установка дополнительных вентиляторов на передней и задней панелях корпуса. Передний вентилятор должен дуть воздух вовнутрь корпуса, задний должен выдувать его наружу.

Корпус должен быть прочным, т.е. должен быть сделан из достаточно толстого металла. Корпуса из «жести» от вибрации, вызванной, например вращением вентиляторов, начинают со временем зудеть и дребезжать.

Также очень полезной опцией является наличие на передней панели гнезд для подключения наушников, USB-флешек, устройства считывания карт памяти (карт-ридер).

Монитор

Современные ЖК-мониторы очень похожи друг на друга по характеристикам. Да и характеристика-то, о которой знает большинство всего две - размер экрана (в дюймах) и разрешение экрана (в пикселях). У большинства мониторов размером от 20 дюймов и более максимальное разрешение составляет 1920*1080 пикселей (так называемое FullHD). Более дешевые мониторы с диагональю до 19 дюймов часто имеют меньшее разрешение - 1380*768, иногда 1280*600 пикселей.

Большое разрешение удобно тем, что монитор будет отображать большее количество информации одновременно. Это незаменимо при работе с программами, имеющими сложный интерфейс, включающим в себя много панелей и вкладок, например, Adobe Photoshop. На экранах с малым разрешением эти программы тоже работают, но панели инструментов видны не полностью, их нужно прокручивать, чтобы использовать нужный инструмент (если он находится за пределами экрана). При этом рабочее пространство (например, место для обрабатываемой фотографии) заметно сужается.

Еще один момент - какая матрица используется в мониторе. В основном матрицы бывают двух типов:

  • TN - быстрая и дешевая, но цветопрередачей не блещет. Больше подойдет для недорогих офисных компьютеров.
  • IPS (PLS) - стоит дороже, но имеет лучшую цветопередачу. Оптимально для работы с графикой и фото.

Еще один важный момент - равномерность подсветки экрана монитора. Она должна быть как можно более равномерной. А то бывает так, что в виду конструктивных особенностей монитора, низ изображения ярче чем верх, или центр ярче чем края.

Клавиатура, мышь

Важно, чтобы клавиатура была удобной лично для вас. Покупка "эргономичной" клавиатуры (с подставкой под запястья) не всегда оправдана. Такая клавиатура занимает много места на столе и из-за этого, возможно, эта "эргономичность" принесет вам больше неудобств, нежели блага.

Мышку надо брать именно такую, которая вам удобна. Если у вас большая кисть, вам будет очень неудобно работать миниатюрной мышью. Для работы вполне достаточно 2-кнопочной мышки с колесиком. 5-7 кнопочные мыши - удел геймеров.

Беспроводные клавиатуры и мыши стоят дороже обычных, но удобнее в работе - нет никаких проводов. Раньше была проблема - в мышке быстро садились батарейки, но современная беспроводная мышь может работать несколько месяцев без замены батарейки.

Привод DVD

Сейчас цены, характеристики и качество этих устройств сравнялось, и зачастую выбор привода DVD сводится лишь к тому, чтобы цвет передней панели соответствовал цвету корпуса. Если раньше эти устройства были дорогими, то сейчас средняя цена пишущего dvd-привода составляет 25 долларов. На нее и следует ориентироваться. Почти все приводы могут записывать 2-слойные диски. Однако этой функцией пользуются крайне редко, поскольку 2-слойные болванки намного дороже 1-слойных, во-вторых, скорость 2-слойных записи дисков невысока.

В основном DVD-привод используется для однократной установки программного обеспчения (операционной системы, драйверов), а потом может несколько лет оставаться неиспользованным.

Звук

Звуковая подсистема состоит из звуковой карты и колонок. Для большинства пользователей вполне достаточно интегрированной звуковой карты и недорогих колонок. Однако, если вы любитель хорошего звука, вам возможно придется задуматься насчет приобретения отдельной звуковой карты и колонок подороже.

Для прослушивания музыки разумнее выбрать стереосистему без сабвуфера, но с мощными низкочастотными динамиками, хорошо прорабатывающими басы. Поскольку музыка на CD записана именно в 2-канальном режиме (стерео), система из двух колонок воспроизведет ее наиболее точно, с сохраненим звуковой сцены (расположение инструментов по каналам). Естественно, колонки должны быть с хорошими характеристиками - широким частотным диапазоном и с хорошей линейностью АЧХ. Колонки обязательно должны быть деревянными. Пластмассовые корпуса в этом случае неприемлемы - из-за излишнего их резонанса звук будет излишне "бубнящий" и "дребезжащий". Как вариант - купить недорогие колонки для повседневного использования и хорошие наушники - чисто для музыки.

Для просмотра фильмов предпочтительнее системы с сабвуфером и несколькими сателлитами (5.1, 7.1). Звук в фильмах чаще всего адаптирован именно к такой конфигурации аудиосистемы. Есть важное замечание - для достижения эффекта 3-мерного звука место зрителя должно быть расположено в центре комнаты, сателлиты по углам, а экран - напротив зрителя. Вполне возможно, что с учетом вашего интерьера такая расстановка будет просто невозможна.

Есть так же акустические системы формата 2.1 (2 сателлита и сабвуфер). Такую систему есть смысл покупать только в том случае, если места под большие колонки нет. Вместо них ставятся компактные сателлиты. Сабвуфер ставится под стол или в другое удобное место. Качество звука у такой системы как правило хуже, чем у обычной стереосистемы за ту же цену.

Принтер, сканер...

Как правило, для домашнего к компьютера не нужно ни то, ни другое. Однако, если есть необходимость что-то сканировать или печатать, перед нами встает новая проблема выбора. Как правило, человек, покупающий принтер для дома хочет приобрести непременно цветной аппарат. Не потому что нужна цветная печать, а потому что хочется чтобы она была (на всякий случай). Как правило, при этом выбор можно остановить на недорогом струйный принтере, печатать на нем все что угодно (как утверждает продавец), с прекрасным качеством... СТОП! Помечтали? А теперь ближе к реальности. Струйные принтеры, особенно недорогие - весьма капризные устройства.

Основные минусы струйных принтеров:

  • Засыхание чернил. Если на принтере не печатали какое-то время (2 недели, или более) вполне возможно появление при печати горизонтальных белых полосок. Это получается потому, что засохшие чернила блокируют сопла печатающей головки. Чтобы их прочистить нужно выполнить специальную процедуру очистки. При этом тратится до 10 процентов чернил из картриджа (за один раз).
  • Небольшой ресурс картриджей. На одной заправке едва ли удастся напечатать 300-400 листов текста и не более 100 (как правило) фотографий форматом 10 на 15. Стоимость нового комплекта картриджей сравнима со стоимостью принтера.

Струйный принтер я бы рекомендовал покупать лишь в том случае, если он будет использоваться для печати фотографий, причем постоянно. Чтобы не вылететь при этом в трубу на расходниках настоятельно рекомендую дооборудовать принтер перезаправляемыми картриджами или . Тогда себестоимость фотопечати ощутимо уменьшится.

Как правило дома объем печати небольшой, да и печать происходит время от времени, иногда с перерывом в несколько месяцев. В связи с этим для дома, рекомендую приобрести недорогой лазерник (в пределах 200 долларов). Несмотря на то, что он черно-белый, он начисто лишен недостатков, присущих струйным принтерам. По крайней мере, вы будете знать, что даже после года простоя он не откажется печатать как засохший струйник.

В последнее время получают распространение сублимационные фотопринтеры. С одной стороны у них масса достоинств - компактность, простота в обращении и обслуживании, приличное качество печати фотографий. Но есть и недостатки - как правило размер отпечатка составляет только 10 на 15 и стоит один такой отпечаток от 20 рублей. Дороговато! Но при нерегулярной печати сублимационный фотопринтер более предпочтителен, чем струйник, склонный к засыханию чернил, но все же фотолаборатория предпочтительнее по деньгам.

Сканеры в домашних условиях в основном используются для сканирования текста. Сканирование фотографий и фотопленок давно перестало быть массовой задачей домашних сканеров - спасибо цифровым фотоаппаратам. Как известно, разрешающая способность сканеров измеряется в dpi (число точек на дюйм). Недорогие сканеры имеют разрешение 600 dpi, те что подороже - 1200-2400 dpi и более. Для сканирования текста в основном используется разрешение 200-300dpi. Отсюда вывод - по разрешающей способности со сканированием текста может справится любой без исключения сканер. Другой вопрос - скорость сканирования. Чем она больше, тем лучше. Особенно это проявится, если нужно сканировать большой объем материала. Сканеры с интерфейсом USB 2.0 работают намного быстрее, чем с USB1.0 (хотя, сейчас таких, наверно уже не найти).

Программное обеспечение

Я не буду здесь рассуждать о том, какой Windows лучше ставить (и стоит ли его ставить вообще). Большинство компьютеров и ноутбуков, которые продаются в магазинах уже имеют предустановленную операционную систему. На данный момент это преимущественно Windows 10. Если вы покупаете компьютер без операционной системы, вы можете установить любую систему - платную или бесплатную, лицензионную или "обыкновенную". Главное, чтобы она соответствовала возможностям компьютера и поддерживала все те устройства, что находятся внутри него.

Хотелось бы дать всего одну рекомендацию по поводу программного обеспечения. Если компьютер будет использоваться для работы и на нем будут храниться ценные данные, задушите жабу и купите сразу нормальный лицензионный антивирус. Касперский, Нод32, Доктор Веб... Без разницы какой! Их стоимость для домашнего использования редко превышает 1000 рублей в год, часто за эту цену можно установить программу на несколько компьютеров. "Обыкновенный" (в смысле, нелицензионный) антивирус со скачанным из интернета ключом - сомнительный помощник. Ключ в любой момент может быть заблокирован и вы останетесь без антивирусной защиты. Через несколько недель антивирусная программа из "защитника" превращается в "бесполезный замедлитель компьютера". Некоторые пользователи на это не обращают внимания месяцами и каждый раз машинально закрывают окно предупреждения. В итоге на компьютере постепенно начинает плодиться всякая зараза, занесенная из интернета и флешек и в конце концов компьютер начинает жить своей жизнью и работать на нем становится невозможно. Стоимость услуг специалиста, который вернет его к нормальной жизни, как правило, намного больше стоимости лицензионного антивируса.

p.s. Антивирусы бывают и бесплатные, но я не видел среди них ни одного, который бы обеспечивал действительно надежную защиту.

Ещё вчера информатику считали в Советском Союзе лженаукой. А сегодня правительства некоторых стран жалуются на атаки российских хакеров.

И хоть в России пока что производится мало высокотехнологичных устройств и девайсов, умных программистов хватает и у нас.

Сегодня мы расскажем про компьютерные языки, их классификацию, суть, возможности и перспективы использования в будущем.

Начнем рассматривать тему с теории. Первым делом разберёмся с понятием.

Что такое компьютерные языки?

Это система знаков, символов, которая создана для "общения" человека с компьютером. Ведь мы не можем просто так взять, подойти к компьютеру и начать ему что-то объяснять. Для этого существуют специальные слова-коды и лексика, из которых состоят компьютерные языки. А они уже доносятся до компьютера в понятной ему форме.

На сегодняшний день существует более 8 тысяч различных языков для общения человека с компьютером. Конечно же, все их знать нельзя. Кто-то создаёт язык для себя, а кто-то занимается этим на коммерческой основе.

Но хороший программист должен знать в совершенстве хотя бы несколько базовых из них.

Какие языки программирования самые популярные?

Мир компьютерных технологий постоянно совершенствуется: появляются новые разработки, доводятся до ума прошлые. Вместе с этим появляются или упорядочиваются компьютерные языки программирования. Самыми популярными из них, которые используются глобально, можно отнести следующие:

Конечно же, языков на самом деле ещё больше, но мы выбрали самые основные, на которых написано более 90% всех компьютерных приложений. Далее рассмотрим подробнее каждый из них.

Процедурный С/С++

Языки С и C++ можно назвать двумя братьями. Есть утверждения о том, что это два абсолютно разных языка программирования, что неверно. С++ является некоторым усовершенствованием предыдущего языка, облегчающим написание программ и сохранившим прежний синтаксис.

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

Говоря о достоинствах и недостатках этого языка, нельзя делать однозначные выводы. Есть его сторонники, а есть и беспощадные критики. Основой для споров является то, что в этом языке программирования нет ничего своего.

Его создатели, можно так сказать, объединили функции и возможности нескольких языков программирования в один. В итоге получился комплексный и масштабный инструмент программирования. Но если разбирать его по отдельно взятым функциям, то он уступает узкоспециализированным языкам.

Независимый и безопасный Java

Этот английский компьютерный язык разработали в компании Sun Microsystems. Благодаря тому, что написанная программа транслируется в особенный байт-код, она способна работать независимо от типа операционной системы или компьютерной архитектуры.

Это сделало язык Java самым популярным. Его можно встретить абсолютно во всей бытовой технике, банкоматах, городских автоматах и практически во всём, что связано с компьютерными технологиями. Именно на Java пишется большинство популярных приложений для смартфонов и телефонов.

Также у этого языка программирования достаточно высокий уровень безопасности. Выполнение программой действий в рамках своих полномочий контролируется которая передаёт команды на устройства. Поэтому при попытке выполнить какую-либо другую задачу работа программы тут же прекращается.

Если говорить о простоте языка, то стоит отметить исследования, которые показали, что аналогичные операции пишутся в 1,2-2 раза дольше, чем на языке C++. Также в несколько раз больше ресурсов требуется на выполнение команд. Но команда производителя постоянно выпускает множество обновлений, которые сводят к минимуму все недостатки этого языка программирования.

Покоривший Интернет PHP

Вы хотите создать свой сайт или заняться веб-программированием? В этом вам поможет отличный язык PHP, который способен создавать динамические страницы. Он является, пожалуй, самым популярным при создании сайтов и написании веб-приложений.

Благодаря тому, что этот язык программирования создавался разработчиками с открытым кодом, его удалось довести до совершенства, и он набрал бешеную популярность. PHP легко взаимодействует с самыми разными базами данных - от MySQL до Access.

Самые популярные сайты Интернета, такие как Facebook или Wikipedia, написаны именно на этом языке.

Писать на нём достаточно просто. Существует даже статистика, что более 60% программистов мира, которые работают на коде PHP, достаточно ограниченно знают (на базовом уровне) английский язык. Компьютерная грамотность в этом случае ограничивается лишь знанием необходимых функций и процедур.

Нельзя обойти стороной и критику языка. Несмотря на то что в рейтингах самых популярных языков 2015 года PHP занял 6-е место, в его адрес нередко высказывается недовольство.

Прежде всего, этот язык создавался не одной группой программистов, а несколькими. Из-за этого синтаксис языка не унифицирован и не имеет единой архитектуры. Встречаются разные процедуры, которые необходимо описывать по-особенному, а не по стандартизированному шаблону.

Также одной из главных проблем можно назвать отсутствие совместимости между разными версиями языков. Более ранние версии абсолютно отказываются работать с обновлениями, что часто создаёт проблемы по переносу кода из одной версии в другую.

Актуальность знания и понимания языков программирования

Тема умения "разговаривать" с компьютером в последнее десятилетие набирает все больше оборотов.

И это не удивительно, ведь информационные технологии неугомонно внедряются в нашу жизнь и уже даже зубная щетка не обходится без "мозгов". Программировать код и обслуживать устройства должен специалист. Поэтому спрос на грамотных программистов всегда есть.

Ещё одной причиной того, почему многие изучают компьютерные языки, можно назвать спад экономики страны. Человек, умеющий профессионально писать на Java, может удалённо работать на иностранную компанию по созданию приложений и зарабатывать за месяц такие деньги, которые в своей стране придётся копить в течение десятков лет.

Но если задуматься, то достаточно сложно начать успешно заниматься программированием и писать компьютерные программы. Английский язык - это главная преграда для начинающих. Ведь большинство программ и языков написаны именно с учётом лексики этого международного языка.

Изучить языки можно онлайн

Так что придётся изучить иностранный язык хотя бы на базовом уровне, пока русский компьютерный язык не придумали.

Но не переживайте, мир не стоит на месте. Сегодня можно обучаться, не выходя из дома. Главное - иметь компьютер и Интернет. Есть множество сайтов, которые проводят компьютерное обучение языкам. Самые популярные из них - это Codecademy, Code School и Udacity.

Выучите базовые принципы ЯП. Тут, конечно, все зависит от выбранного вами языка, однако есть у ЯП и общие моменты, исключительно для написания полезных программ важные. Чем раньше вы овладеете всеми этими понятиями и научитесь применять их на практике, тем лучше для вас и ваших навыков программиста. Итак, вот лишь некоторые из вышеупомянутых «моментов»:

  • Переменные – в переменной можно хранить и вызывать меняющиеся данные. Переменными можно управлять, у переменных есть типы (очень упрощенно говоря – числа, символы и так далее), которыми и определяется тип хранящихся в переменной данных. Наименования переменных принято задавать такими, чтобы человек, читающий исходный код, мог получить представление о том, что в переменной хранится – так будет проще понять логику работы программы.
  • Условные конструкции (они же – условные выражения) – это действие, которые выполняется в том случае, если выражение или конструкция истинно или ложно. Наиболее распространенной формой таких выражений можно назвать конструкцию "If-Then" (если-то). Если выражение истинно (например, если x = 5), то произойдет действие №1, а если ложно (x != 5), то действие №2.
  • Функции – в разных языках программирования их называют по-разному: где-то это процедуры, где-то – методы, где-то – вызываемые единицы. По сути же, функции представляют собой мини-программы, входящие в состав большой программы. Функцию можно вызывать несколько раз, что позволяет программисту создавать сложные программы.
  • Ввод данных – достаточно широко трактуемое понятие, присутствующее в почти что каждом ЯП. Суть его – обработка данных, введенных пользователем, и их хранение. То, как будут собраны данные, зависит от программы и доступных пользователю способов ввода данных (с клавиатуры, из файла и так далее). Понятие ввода данных тесно связано с понятием вывода данных – то есть того, каким образом данные будут возвращены пользователю (выведены на экран, записаны в файл и так далее).
  • Установите все необходимое ПО. Многим ЯП нужны компиляторы – программы, переводящие программный код в понятные для компьютера инструкции. Впрочем, есть и ЯП другого типа (вроде Python), в которых программы выполняются сразу, а компиляция их не требуется.

    • У некоторых ЯП есть так называемые IDE (Integrated Development Environment, интегрированная среда разработки), в которые входят редактор кода, компилятор/интерпретатор и отладчик (дебаггер). Это дает программисту возможность работать над программой, образно выражаясь, по принципу одного окна. Также в IDE могут входить визуальные представления иерархий объектов и директорий.
    • Есть и онлайновые редакторы кода. Эти программы подсвечивают синтаксис программного кода несколько иначе, а также предлагают разработчику доступ к ряду полезных и простых инструментов.
  • ЯЗЫК ПРОГРАММИРОВАНИЯ И ЕГО ВИДЫ

    Язык программирования - формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под её управлением.

    Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков - это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.

    Низкоуровневый язык программирования (язык программирования низкого уровня) - язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например, Java, Microsoft .NET) процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов человеческого языка (обычно английских).

    ЯЗЫКИ ПРОГРАММИРОВАНИЯ НИЗКОГО УРОВНЯ

    Первым компьютерам приходилось программировать двоичными машинными кодами. Однако программировать таким образом - достаточно трудоемкая и сложная задача. Для упрощения этой задачи стали появляться языки программирования низкого уровня, которые позволяли задавать машинные команды в более понятном для человека виде. Для преобразования их в двоичный код были созданы специальные программы - трансляторы.

    Рис.1. Пример машинного кода и представления его на ассемблере

    Трансляторы делятся на:

      компиляторы - превращают текст программы в машинный код, который можно сохранить и затем использовать уже без компилятора (примером являются исполняемые файлы с расширением *. exe);

      интерпретаторы - превращают часть программы в машинный код, выполняют и после этого переходят к следующей части. При этом каждый раз при выполнении программы используется интерпретатор.

    Примером языка низкого уровня является ассемблер. Языки низкого уровня ориентированы на конкретный тип процессора и учитывают его особенности, поэтому для переноса программы на ассемблере на другую аппаратную платформу ее нужно почти полностью переписать. Определенные различия имеются и в синтаксисе программ под разные компиляторы. Правда, центральные процессоры для компьютеров фирм AMD и Intel практически совместимы и отличаются лишь некоторыми специфическими командами. А вот специализированные процессоры для других устройств, например, видеокарт, телефонов содержат существенные различия.

    Преимущества

    С помощью языков низкого уровня создаются эффективные и компактные программы, поскольку разработчик получает доступ ко всем возможностям процессора.

    Недостатки

      Программист, работающий с языками низкого уровня, должен быть высокой квалификации, хорошо понимать устройство микропроцессорной системы, для которой создается программа. Так, если программа создается для компьютера, нужно знать устройство компьютера и, особенно, устройство и особенности работы его процессора;

      результирующая программа не может быть перенесена на компьютер или устройство с другим типом процессора;

      значительное время разработки больших и сложных программ.

    Языки низкого уровня, как правило, используют для написания небольших системных программ, драйверов устройств, модулей стыков с нестандартным оборудованием, программирование специализированных микропроцессоров, когда важнейшими требованиями являются компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам.

    Ассемблер - язык низкого уровня, что широко применяется до сих пор.

    ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

    Первым языком программирования высокого уровня считается компьютерный язык Plankalkül, разработанный немецким инженером Конрадом Цузе ещё в период 1942-1946 годах. Однако транслятора для него не существовало до 2000 г. Первым в мире транслятором языка высокого уровня является ПП (Программирующая Программа), он же ПП-1, успешно испытанный в 1954 г. Транслятор ПП-2 (1955 г., 4-й в мире транслятор) уже был оптимизирующим и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур, а транслятор ПП для ЭВМ Стрела-4 уже содержал и компоновщик (linker) из модулей. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка (1957).

    Высокоуровневые языки стремятся не только облегчить решение сложных программных задач, но и упростить портирование программного обеспечения. Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остаётся, в идеале, неизменным.

    Такого рода оторванность высокоуровневых языков от аппаратной реализации компьютера помимо множества плюсов имеет и минусы. В частности, она не позволяет создавать простые и точные инструкции к используемому оборудованию. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков. Одним из следствий этого стало добавление поддержки того или иного языка низкого уровня (язык ассемблера) в ряд современных профессиональных высокоуровневых языков программирования.

    Примеры: C, C++,C#, Java, Python, PHP, Ruby, Perl, Паскаль, Delphi, Lisp . Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинстве из них интегрирована поддержка строковых типов, объектов, операций файлового ввода-вывода и т. п.Недостатком языков высокого уровня является больший размер программ по сравнению с программами на языке низкого уровня. Поэтому в основном языки высокого уровня используются для разработок программного обеспечения компьютеров и устройств, которые имеют большой объем памяти. А разные подвиды ассемблера применяются для программирования других устройств, где критичным является размер программы.

    В основе императивных языков лежат несколько важных идей, в их числе представление действий в виде математических формул, концепция типа данных и теорема о структурном преобразовании.

    Пpогpамма на императивном языке стpоится из функций (подпpогpамм). Пpогpаммы на языке ассемблеpа тоже могут состоять из подпpогpамм и в этом нет ничего нового, но языки высокого уpовня позволяют не думать о таких вопpосах как оpганизация вызовов, пеpедача исходных данных и возвpат pезультатов. Описание функции состоит из имени, списка паpаметpов (исходных данных), типа pезульта и действий, пpиводящих к получению этого pезультата. Одна из функций пpогpаммы является главной, ее выполнение и есть pабота пpогpаммы.

    Простой пример - функция, вычисляющая синус числа. Она может называться sin, ее исходные данные состоят из одного вещественного числа, pезультат - тоже вещественное число, получаемое путем суммиpования отpезка известного бесконечного pяда (или выполнения команды fsin математического сопроцессора).

    Набоp действий, котоpые могут выполняться внутpи функции очень огpаничен. Он состоит из вычисления фоpмульных выpажений, вызовов дpугих функций (что не является отдельным действием - вызов функции часто входит в выpажение), присваиваний, ветвлений (гpуппа действий, котоpая выполняется лишь при истинности некоторого условия) и циклов (гpуппа действий, выполняемых многокpатно, число повтоpений зависит от некотоpого условия). Действия могут быть вложены дpуг в дpуга. Может показаться, что набоp из ветвлений и циклов слишком мал, но это не так. Доказано, что любой алгоpитм, составленный из функциональных блоков (на низком уpовне - арифметических команд и команд пеpесылки данных), условных и безусловных пеpеходов может быть пpеобpазован в эквивалентный алгоpитм, составленный только из стpуктуpных блоков - функциональных блоков, ветвлений и циклов с пpовеpкой условия в конце. Это утвеpжение было сфоpмулиpовано в статье Бома и Джакопини (Corrado Bohm and Giuseppe Jacopini) "Flow diagrams, turing mashines and languages with only two formation rules" (Communications of ACM, Volume 9 / Number 5 / May, 1965).

    Если для выполнения необходимых действий нужно где-то хpанить пpомежуточные pезультаты, внутpи функции помещаются специальные описания, содеpжащие имена переменных и, возможно, другую информацию. Адpеса ячеек опеpативной памяти будут назначены им автоматически. В некоторых языках внутри функций также могут содержаться определения констант и типов. В Pascal-подобных языках функция подобна программе и может включать определения не только констант, типов и переменных, но и других функций.

    Объявление данных пpедставляет собой список именованых объектов. Эти объекты называются пеpеменными. В ряде языков должен задаваться тип переменной, определяющий необходимый для ее pазмещения объем памяти и набоp опеpаций, в котоpых она может участвовать. Но это не обязательно так, существуют языки, в которых тип переменной не задается и может меняться по ходу выполнения программы.

    Обычно языки пpогpаммиpования пpедоставляют достаточно огpаниченный набоp пpедопpеделенных типов пеpеменных и сpедства создания новых типов. Пpедопpеделены некотоpые из следующих типов:

      натуpальные и целые числа pазличной pазpядности;

      вещественные числа;

      символы - буквы, цифpы, знаки аpифметических действий и пp.;

      стpоки символов;

      логические значения;

      указатели

    Действия над данными могут выполняться с помощью функций и операторов.

    В языке C, напpимеp, не опpеделены символы, строки и логические значения. Его тип char на самом деле является коpотким целым и допускает аpифметические действия.

    Новые типы обpазуются путем объединения в единое целое нескольких элементов одного типа (массив, каждый его элемент имеет поpядковый номеp) или элементов pазных типов (стpуктуpа, каждый ее элемент имеет собственное имя). Напpимеp, в большинстве языков комплексные числа не опpеделены, но их можно опpеделить:

    В некоторых языках (например, в C++) для создаваемых типов могут быть определены и операторы, что позволяет использовать переменные этих типов так же, как и переменные предопределенных типов.

    Есть и другие способы создания новых типов. Например, в языке Pascal возможно создание:

      типов-диапазонов (посредством задания диапазона значений);

      типов-перечислений (посредством перечисления возможных значений);

      типов-множеств

    Переменные типов-множеств могут быть использованы для хранения информации о наборе свойств каких-либо объектов. Нечто подобное можно сделать с помощью переменных целого типа, установленные биты которых озачают наличие соответствующих совойств. По-видимому, использование множеств более устойчиво к ошибкам программиста.