Программирование — это процесс превращения алгоритма в нотацию, написанную на языке программирования, которая может быть выполнена компьютером. Несмотря на существование большого количества различных языков программирования и типов компьютеров, самый первый и важный шаг — это иметь решение. Без алгоритма никакой программы быть не может.
Информатика — это не наука о программировании. Однако, программирование — важная часть того, чем занимаются учёные-информатики. Часто программирование плк овен для нас — это способ создать представление найденного решения. Вот почему воплощение в языке и процесс его создания являются фундаментальной частью дисциплины.
Алгоритмы описывают решение задачи в терминах данных, необходимых для представления сущностей задачи, и набора шагов, нужных для получения конечного результата. Язык программирования должен предоставить способ для записи их обоих — данных и процесса.Для этой цели в языках предусмотрены типы данных и управляющие конструкции.
Управляющие конструкции позволяют шагам алгоритма воплотиться подходящим и однозначным образом. Как минимум алгоритму требуются конструкции для последовательной обработки, отбора с целью принятия решения и итераций для повторяющегося управления. Пока язык предоставляет эти основные положения, он может использоваться для реализации алгоритмов.
Все элементы данных представляются в компьютере как последовательности из нулей и единиц. Для того, чтобы придать смысл этим последовательностям, нам нужны типы данных. Они предоставляют интерпретацию бинарных данных, благодаря которой мы можем думать о данных в терминах, имеющих смысл по отношению к решаемой задаче. Эти низкоуровневые встроенные типы данных (иногда называемые примитивными) обеспечивают строительные блоки для разработки алгоритмов.
Например, большинство языков программирования предлагают тип данных для целых чисел. Строки бинарных цифр в памяти компьютера могут быть интерпретированы как целые числа, с учётом тех характерных смыслов, которые мы обычно с ними ассоциируем (например, 23, 654 или -19). Кроме того, типы данных также предоставляют описание операций, в которых могут принимать участие их элементы. Для целых чисел такими операциями обычно являются сложение, вычитание и умножение. Мы закономерно ожидаем, что числовые типы данных могут участвовать в этих арифметических операциях.
Часто возникающая у нас трудность заключается в том факте, что задачи и их решения очень сложны. Простые, предлагаемые языком конструкции и типы данных (которых, конечно, бывает достаточно для представления сложного решения) как правило невыгодно использовать в процессе поиска решения. Нам нужны способы управлять этой сложностью и помогать с созданием решения.