среда, 22 апреля 2015 г.

Программирование

Что такое программирование?

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

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

Что такое язык программирования?

Язык программирования - это фиксированная система обозначений для описания алгоритмов и структур данных.


Название
Создатель
Время создания
Назначение
1
Паскаль
Никлаус Вирт
в 1968—1969 годах
используется для обучения программированию в старших классах и на первых курсах вузов, является базой для ряда других языков
2
Бейсик
Томас Курц и Джоно Кемени
в 1964 году
Используется как самостоятельный язык для разработки прикладных программ, главным образом, работающих под управлением ОС Windows различных версий. Также широко распространён в качестве встроенного языка прикладных программных систем различного назначения и в качестве языка для программируемых калькуляторов.
3
Си
Деннис Ритчи
в 1969—1973 годах
получил широкое применение при создании системного программного обеспечения и прикладного программного обеспечения для решения широкого круга задач. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения
4
Фортран
John Warner Backus
в 1954 году
широко использовался в основном для научных и инженерных вычислений. Он прекрасно подходит для решения численных задач
5
Алгол
комитет по языку высокого уровня IFIP
в 1958—1960 годах
применяется при составлении программ для решения научно-технических задач на ЭВМ. Позволяет легко переводить алгебраические формулы в программные команды
6
Кобол
Грейс Хоппер
в 1959 году
предназначенный для разработки бизнес-приложений. имел прекрасные для своего времени средства для работы со структурами данных и файлами, что обеспечило ему долгую жизнь в бизнес-приложениях.
7
Java
компания Sun Microsystems
23 мая 1995 года
Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине вне зависимости от компьютерной архитектуры. Характерна гибкая система безопасности, в рамках которой исполнение программы полностью контролируется виртуальной машиной.Получил широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках
8
С++
Бьёрн Страуструп
в 1983 году
Поддерживает такие парадигмы программирования как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции. Стандартная библиотека включает, в том числе, общеупотребительные контейнеры и алгоритмы.
9
Smalltalk
Алан Кэй, Адель Голдберг, Дэн Ингаллс, Xerox PARC
Разработка начата в 1969 г., стал доступен для широкого использования в 1980
Является одним из многих объектно-ориентированных языков. Всё доступно для изменения. Если вы хотите изменить интегрированную среду разработки, вы можете сделать это в работающей системе, без остановки, перекомпиляции и перезапуска. Динамическая типизация — это означает, что вы не указываете типы переменных в программе, что делает язык гораздо лаконичней.
10
Objective-C
Бред Кокс
в 1983 году
Используемый корпорацией Apple.  Позволяет «разбивать» алгоритм на малые части, в основном чтобы выделить этапы алгоритма в отдельные блоки и работать с ними.




среда, 15 апреля 2015 г.

Управление и кибернетика

1948 год - публикация книги Норберта Винера "Кибернетика" в США и Европе. 
Время появление кибернетики совпало со временем появления ЭВМ.
Рис. 1. Норберт Винер

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




Управление - целенаправленное воздействие одних объектов, которые являются управляющими, на другие объекты - управляемые.

Примеры: 

  • человек и телевизор (человек нажимает клавишу управления телевизором);
  •  пульт и магнитофон (сигнал пульта управляет магнитофоном); 
  • знаки дорожного движения и пешеход (разные знаки координируют движение пешеходов).


Рис. 2. Схема управления без обратной связи

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

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




Линейный алгоритм подразумевает работу управляющего объекта независимо от состояния управляемого объекта. Подобная связь между объектами называется "прямая связь".

Обратная связь - это процесс передачи информации о состоянии объекта управления управляющему объекту.
Рис. 3. Схема системы управления с обратной связью