Программирование: различия между версиями
Ramir (обсуждение | вклад) |
|||
Строка 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 современных парадигмы программирования:
- Процедурное программирование (ПП)
- Объектно-ориентированное программирование (ООП)
- Компонентно-ориентированое программирование (КОП)
- Аспектно-ориентированое программирование (АОП)
Процедурное программирование
Вот пример процедурного кода, выводящего строку
<?php
print "Hello, world.";
?>
Вот пример объектно-ориентированного кода, который делает то же самое:
<?php
class helloWorld {
function myPrint() {
print "Hello, world.";
}
}
$myHelloWorld = new helloWorld();
$myHelloWorld->myPrint();
?>