Программирование: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Строка 50: Строка 50:


== См. также ==
== См. также ==
* [[Аспектно-ориентированное программирование]]
* [[Объектно-ориентированное программирование]]
* [[Объектно-ориентированное программирование]]
* [http://snippets.su/ Примеры кода]
** [[Си++]]
** [[Си++]]
** [[Ruby]]
** [[Ruby]]
Строка 58: Строка 58:
** [[HUGS 98]]
** [[HUGS 98]]
** [[Монадические комбинаторы парсеров]]
** [[Монадические комбинаторы парсеров]]
** [[Свойства оператора свёртки]]
** [[Свойства оператора свёртки]]
** [[Сильные стороны функционального программирования]]
** [[Сильные стороны функционального программирования]]
** [[Сильные стороны языка Haskell]]
** [[Сильные стороны языка Haskell]]
** [[Функциональные парсеры]]
** [[Функциональные парсеры]]
* [[Операционные системы]]
* [[Аспектно-ориентированное программирование]]
* [[Программирование на Clojure]]
* [[Московская олимпиада по информатике - 2005]]
* [[Московская олимпиада по информатике - 2005]]
* [[Операционные системы]]
* [[XML]]
* [[XML]]
[[Категория:Программирование]]
[[Категория:Программирование]]

Версия от 00:44, 16 апреля 2013

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

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

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

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

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

В некоторых языках, вместо машинного кода генерируется интерпретируемый двоичный код "виртуальной машины", также называемый байт-кодом (byte-code). Такой подход применяется в Forth, Lisp, Java, Perl, Python а также в языках платформы Microsoft .NET.

Парадигмы программирования

Функциональное программирование в соответствующем Вики-учебнике подробно изложено, поэтому поговорим об императивном программировании.

Для императивных языков программирования можно выделить 4 современных парадигмы программирования:

  1. Процедурное программирование (ПП)
  2. Объектно-ориентированное программирование (ООП)
  3. Компонентно-ориентированое программирование (КОП)
  4. Аспектно-ориентированое программирование (АОП)

Процедурное программирование

Вот пример процедурного кода, выводящего строку

<?php 

print "Hello, world."; 

?>

Вот пример объектно-ориентированного кода, который делает то же самое:

<?php 

class helloWorld { 
  function myPrint() { 
    print "Hello, world."; 
  } 
} 
$myHelloWorld = new helloWorld(); 
$myHelloWorld->myPrint(); 

?>

Методологии программирования

См. также