Система программирования — это не просто программа, а целый комплекс, включающий язык программирования, инструменты для создания и редактирования текстов программ, средства отладки (исправления ошибок) программ, компиляторы и т. д.
Программы пишутся по определённым правилам, с определённым набором команд.
Язык программирования — набор команд и правил их применения, позволяющих компьютеру выполнить тот или иной вычислительный процесс, организовать управление различными объектами.
Подобно тому как мы общаемся друг с другом на русском, английском или других языках, мы можем передавать информацию компьютеру, и он её сможет обработать. Здесь также можно привести аналогию с обучением ребёнка чему-то новому. Мы сначала объясняем ребёнку на понятном ему языке, как он должен действовать, а далее контролируем процесс. В случае нарушений выполнения действий ребёнком мы должны объяснить ему, где он ошибся и как это исправить. В случае с программированием в роли ребёнка выступает сам компьютер, а мы — в роли его учителя, который объясняет, как компьютер должен работать с той или иной информацией.
Чтобы программа записалась в память компьютера, используется промежуточная программа — компилятор.
Компилятор — это программа-переводчик, которая переводит программу с языка программирования на язык, понятный компьютеру.
Компьютер не способен воспринимать данные на любом человеческом языке. Он хранит все данные в виде двоичного кода.
Рис. 6. Двоичные данные
Так же и с программами: всю последовательность команд необходимо преобразовать в двоичный вид. Именно эту функцию и выполняет компилятор. Процесс такого преобразования называется компиляцией. В результате компиляции на жёстком диске появляется дополнительный файл (или несколько), который содержит в себе программу в двоичном виде.
Рис. 7. Компиляция
Существует ещё другая промежуточная программа, подобная компилятору, — интерпретатор. Интерпретатор выполняет ту же самую функцию, что и компилятор (преобразование программы в двоичный вид), но делает это немного по-другому. Он не создаёт новый файл с программой, вместо этого он выполняет подряд все команды, написанные в программе.
В любой программе на этапе создания могут быть ошибки различного характера: опечатки, неверная логика выполнения, ведущая к ошибке всей программы, и т. д. Компилятор такие ошибки распознаёт на этапе создания исполняемого файла. Интерпретатор же может не увидеть некоторые ошибки.
Рис. 8. Интерпретация
Важно также отметить, что для запуска скомпилированной программы на компьютере не требуется наличия исходного кода программы, как и компилятора: программа уже готова к запуску. Интерпретируемая же программа требует наличия на компьютере интерпретатора, что в некоторых случаях затруднительно.
Табл. 1. Сравнение трансляторов
Представьте, что вы написали интересную программу, которая решает сложный пример по математике, и хотите показать её в школе своим друзьям. Но вот проблема: на школьных компьютерах не установлен требуемый интерпретатор. В этом случае вам потребуется или установить его на компьютер (что может быть проблематично из-за ограничений доступа), или переписать программу в компилируемый вид (рис. 9).
Рис. 9. Пример запуска программы на школьном ПК
Языки и системы программирования — это важнейшая составляющая индустрии программирования. Ниже приведены примеры некоторых из них.
Java. Это и язык программирования, и вычислительная платформа. В основу Java положен принцип Write Once Run Anywhere — «написано один раз, работает везде». Он позволяет создавать онлайн-приложения, запускающиеся прямо в окне браузера. Java используется повсюду — от портативных компьютеров до суперкомпьютеров для научных разработок, в смартфонах и планшетах.
Язык C. Несмотря на то что появился он довольно давно, свои позиции пока не сдаёт. В основном этот язык используют при создании системных и прикладных программ. Без знания этого языка программирования невозможно написать, например, драйвер (программу, позволяющую работать какому-либо устройству).
Язык С++. Как можно понять по названию, это язык нового поколения, следующего за языком C. Используется при создании операционных систем, компьютерных игр, приложения для мобильных платформ и других.
Python — это язык общего назначения. Его используют в разных областях — от веб-разработок до информационной безопасности. Python постепенно вытесняет Java в научной среде. Это связано с тем, что современные студенты начинают осваивать программирование с изучения Python, а не с C или Java, как было раньше.
PHP. Данный язык программирования используется для создания веб-страниц и веб-приложений. В первую очередь PHP разработан для обработки данных на стороне сервера и работы с пользовательскими данными, базами данных, а также для взаимодействия с другими приложениями и службами. Сегодня PHP — один из самых используемых инструментов в области веб-разработки.
JavaScript. Этот язык применяется в браузерах для придания интерактивности веб-страницам. JavaScript используется практически на каждом серьёзном сайте.