Языки программирования и программное обеспечение
Процедурные языки
машинный код команд
Набор команд конкретной вычислительной машины, который интерпретируется на аппаратном уровне или с помощью микропрограмм самой машины., называется машинным кодом.Язык самой машины – машинный код – очевиден и однозначен для каждого вида компьютеров. Но эта последовательность нулей и единиц противоестественна для памяти человека, хотя несколько поколений программистов работали только в машинных кодах. Программа может состоять из миллионов комбинаций единиц и нулей, и ошибка лишь в одном знаке приведет к неправильной работе всей программы. При всех различиях языков программирования все они, в конечном счете, сводятся к языкам высокого и низкого уровня. «Низкий» не значит «плохой». Операторы такого языка близки к машинному коду. К ним относятся языки ассемблера, в которых двоичные последовательности были заменены символами (мнемониками)."Словами" машинного языка являются машинные инструкции, которые бывают постоянной и диапазонной длины.
язык ассамблера
Язык ассемблера — тип языка программирования низкого уровня, представляющий собой формат записи машинных команд, удобный для восприятия человеком. Появился в 1949г.На языке ассемблера пишут:программы, требующие максимальной скорости выполнения: основные компоненты компьютерных игр, ядра операционных систем реального времени и просто критичные по времени куски программ;программы, взаимодействующие с внешними устройствами: драйверы, программы, работающие напрямую с портами, звуковыми и видеокартами;программы, использующие полностью возможности процессора: ядра многозадачных операционных систем, серверы;программы, полностью использующие возможности операционной системы: вирусы, антивирусы, защита от несанкционированного доступа, программы обхода защиты от несанкционированного доступа.Достоинства языка ассемблерамаксимальная оптимизация программ, как по скорости выполнения, так и по размеру;максимальная адаптация под соответствующий процессорНедостатки языка ассемблератрудоемкость написания программы больше, чем языке высокого уровня;трудоемкость чтения;непереносимость на другие платформы, кроме совместимыхассемблер малопригоден для совместных проектов
мнемокод
Базовой конструкцией языка ассемблера является мнемоника, или мнемокод — краткое символьное представление команды процессора. Как правило, она состоит из нескольких символов, обозначающих производимое действие (например, mov — для пересылки из одного регистра в другой, add — для сложения значений и т.д.). Также в мнемонику может входить объект, над которым производится операция (регистр, память, стек), либо другие особенности (влияние на регистр флагов, условия исполнения и т.д.), однако в других диалектах те же особенности могут задаваться в операндах.
Fortran
Фортра́н — первый язык программирования высокого уровня, получивший практическое применение, имеющий транслятор и испытавший дальнейшее развитие. Создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэкуса в корпорации IBM. Название Fortran является сокращением от FORmula TRANslator (формульный транслятор).Фортран широко используется в первую очередь для научных и инженерных вычислений. Одно из преимуществ современного Фортрана — большое количество написанных на нём программ и библиотек подпрограмм.
Basic
Бе́йсик (BASIC, сокращение от англ. Beginner’s All-purpose Symbolic Instruction Code — универсальный код символических инструкций для начинающих) — семейство высокоуровневых языков программирования.Был разработан в 1964 году профессорами Дартмутского колледжа Томасом Курцем и Джоном Кемени.Язык создавался как инструмент, с помощью которого студенты-непрограммисты могли самостоятельно создавать компьютерные программы для решения своих задач. Получил широкое распространение в виде различных диалектов, прежде всего как язык для домашних компьютеров. К настоящему моменту претерпел существенные изменения, значительно отойдя от характерной для первых версий простоты, граничащей с примитивизмом, и превратившись в достаточно ординарный язык высокого уровня с типичным набором возможностей. Используется как самостоятельный язык для разработки прикладных программ, главным образом, работающих под управлением ОС Windows различных версий. Также широко распространён в качестве встроенного языка прикладных программных систем различного назначения и в качестве языка для программируемых калькуляторов.
Алгол
Алго́л (англ. Algol от algorithmic language — «алгоритмический язык») — название ряда языков программирования, применяемых при составлении программ для решения научно-технических задач на ЭВМ. Разработан комитетом по языку высокого уровня IFIP в 1958-1960 годах (Алгол 58, Алгол 60). Кардинально переработан в 1964-1968 годах (Алгол 68). Один из первых языков высокого уровня. Был популярен в Европе, в том числе в СССР, в качестве языка как практического программирования, так и академического языка (языка публикации алгоритмов в научных работах), но в США и Канаде не смог превзойти распространённый там Фортран. Оказал заметное влияние на все разработанные позднее императивные языки программирования — в частности, на язык Pascal.Обычно названием Алгол (без уточнения версии) именуют Алгол 60, в то время как Алгол 68 рассматривается как самостоятельный язык.
Pascal
Pascal — это универсальный язык программирования, отличающийся строгой структурой и типизацией переменных, а также интуитивно понятным синтаксисом. Был разработан швейцарским ученым Никлаусом Виртом в 1970 году на базе языка Алгол-68 для обучения студентов структурному программированию. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал одну из первых в мире механических машин, складывающую два числа.Pascal относится к числу самых распространенных языков программирования в мире и по праву считается одним из наиболее удобных для обучения. На его базе были разработаны другие диалекты, языки и среды разработки, такие как Delphi, Object Pascal, Turbo Pascal, Modula-2 и другие.
C
C — это достаточно "древний" язык программирования, он сформировался в начале 70-х. Не смотря на это, C — живой язык в том смысле, что он активно применяется в настоящее время. Он был придуман, использовался и используется для написания частей программного кода Unix-подобных операционных систем. Также на нем пишут утилиты, компиляторы и реже прикладные программы. Поэтому C называют системным языком программирования.Разработан в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би.Согласно дизайну языка, его конструкции близко сопоставляются типичным машинным инструкциям, благодаря чему он нашёл применение в проектах, для которых был свойственен язык ассемблера, в том числе как в операционных системах, так и в различном прикладном программном обеспечении для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C.
Python
Python — это высокоуровневый язык программирования, отличающийся эффективностью, простотой и универсальностью использования. Он широко применяется в разработке веб-приложений и прикладного программного обеспечения, а также в машинном обучении и обработке больших данных. За счет простого и интуитивно понятного синтаксиса является одним из распространенных языков для обучения программированию. Создатель Python — нидерландский инженер Гвидо ван Россум, известный энтузиаст разработки, который сейчас работает в Microsoft. Язык Python был задуман как потомок языка программирования ABC.
Декларативные языки
Lisp
Лисп — семейство языков программирования, программы и данные в которых представляются системами линейных списков символов. Лисп был создан Джоном Маккарти для работ по искусственному интеллекту и до сих пор остаётся одним из основных инструментальных средств в данной области. Применяется он и как средство обычного промышленного программирования, от встроенных скриптов до веб-приложений массового использования, хотя популярным его назвать нельзя.LISP’ы – это микропрограммы, которые дополняют функционал Autocad и способствуют автоматизации рутинных операций. Именно в Lisp впервые появился сборщик мусора — один из основных элементов Java, C#, Python и других языков с автоматическим управлением памятью. Благодаря ему программисты манипулируют списками и сложными структурами данных, не беспокоясь о висячих ссылках и утечках памяти.На Lisp написан софт, который мониторит состояние самолётов — например «Боингов» и «Эйрбасов».
Prolog
Prolog (от “PROgramming in LOGic”) — декларативный язык программирования общего назначения.Prolog был создан в 1972 с целью сочетать использование логики с представлением знаний. С тех пор у него появился ряд диалектов, расширяющих основу языка различными возможностями.Prolog — один из старейших и все еще один из наиболее популярных языков логического программирования, хотя он значительно менее популярен, чем основные императивные языки. Он используется в системах обработки естественных языков, исследованиях искусственного интеллекта, экспертных системах, онтологиях и других предметных областях, для которых естественно использование логической парадигмы.Создан в 1972 Аланом Колмероэ на основе языка предикатов математической логики дизъюнктов Хорна.
Cobol
COBOL (от COmmon Business-Oriented Language) — один из старейших языков программирования, разработанный прежде всего для написания программ для экономической сферы.Спецификация языка была создана в 1959 году. Создатели языка ставили своей целью сделать его машиннонезависимым и максимально приближенным к естественному английскому языку. Обе цели были успешно достигнуты; программы на COBOL считаются понятными даже неспециалистам, поскольку тексты на этом языке программирования не нуждаются в каких-либо специальных комментариях (самодокументирующиеся программы).Язык позволяет эффективно работать с большим количеством данных, он насыщен разнообразными возможностями поиска, сортировки и распределения. К числу других плюсов COBOL обычно относят его структурированность. Довольно мощные компиляторы с этого языка разработаны для персональных компьютеров. Некоторые из них столь эффективны, что программу, отлаженную на персональном компьютере, нетрудно перенести на большие ЭВМ.Перечисляя минусы, нельзя не вспомнить о том, что на Коболе можно запрограммировать лишь простейшие алгебраические вычисления. Для сложных инженерных расчетов этот язык не годится.Практически все банковские автоматы работают на старом языке программирования COBOL (Common Business-Oriented Language), которому почти 60 лет. Он был разработан в 1959 году как стандартный язык для бизнеса и до сих пор используется в банках по всему миру. В 2014 году 92 из 100 ведущих банков и 71% компаний из списка Fortune 500 пользовались языком COBOL на своих центральных компьютерах.
Технологии программирования
подпрограммы
Подпрограмма включает в себя описание действия, выполнение которого происходит в основной программе после указания имени подпрограммы и фактических параметров. С использованием процедур и функций любой алгоритм может быть разбит на части, то есть осуществляется декомпозиция задачи, что обеспечивает структурированность алгоритма.Подпрограмма и модуль являются самостоятельными программными единицами, имеющими имя и параметры. Процедуры и функции являются подпрограммами. Результат функции присваивается ее имени.Процедура может содержать два результата и более.Среди ключевых особенностей подпрограмм выделяют следующие моменты:За счет таких компонентов становится возможным уменьшение объема исходного кода. Используя подпрограммы, разработчик сможет обеспечить лучшую работоспособность написанного кода. Ошибки и крупные баги сведутся к минимуму.Повышается читабельность ПО. Некоторые коды смогут достаточно быстро разобрать даже те, кто только начал путь изучения особенностей разработки на выбранном языке.Схожие программы удастся создавать быстрее. Это получается за счет применения «готовых блоков» кода в новых проектах.Функции и процедуры нужны для того, чтобы избавиться от крупных и масштабных алгоритмов. Программное обеспечение удастся «разбить» на небольшие задачи. За счет такого приема становится возможным абстрагирование от деталей.
модули
Модульное программирование - это процесс разделения компьютерной программы на отдельные подпрограммы.Модуль - это отдельный программный компонент. Он часто может использоваться в различных приложениях и функциях с другими компонентами системы. Подобные функции сгруппированы в одном и том же блоке программного кода, а отдельные функции разрабатываются как отдельные блоки кода, так что код может быть повторно использован другими приложениями.Преимущества использования модульного программирования включают в себя:Меньше кода должно быть написано.Для повторного использования может быть разработана единственная процедура, исключающая необходимость многократного повторного ввода кода.Программы могут быть разработаны проще, потому что небольшая команда имеет дело только с небольшой частью всего кода.Модульное программирование позволяет многим программистам совместно работать над одним приложением.Код хранится в нескольких файлах.Код короткий, простой и понятный.Ошибки могут быть легко идентифицированы, так как они локализованы в подпрограмме или функции.Один и тот же код может использоваться во многих приложениях.Область видимости переменных можно легко контролировать.
объекты
Объект — это набор переменных и функций, как в традиционном функциональном программировании. Переменные и функции и есть его свойства.Атрибуты — это переменные, конкретные характеристики объекта, такие как цвет поля или имя пользователя.Методы — это функции, которые описаны внутри объекта или класса. Они относятся к определенному объекту и позволяют взаимодействовать с ними или другими частями кода.В программировании объекты — это структуры данных: пользователь, кнопка, сообщение. У них, как и у реальных предметов, могут быть свойства: цвет, содержание или имя пользователя. А чтобы объединить между собой объекты с похожими свойствами, существуют классы.
визуальное программирование
Язык визуального программирования — это такой язык, который позволяет программисту создавать программы, манипулируя графическими элементами, а не печатая текстовые команды. Известным примером является Scratch, язык визуального программирования родом из MIT, который используется для обучения детей. Его преимущества заключаются в том, что он делает программирование более доступным для новичков и не-программистов.Технологии визуального программирования появились давно. Сама их концепция основана на парадигме программирования потока данных — dataflow programming. Этот подход создали еще в 70-х годах прошлого века. Он заключается в том, что любую программу можно представить в виде графика, который отображает поток данных между компонентами системы. К сожалению, эта парадигма сейчас находится весьма далеко от трендов в разработке программного обеспечения.
сценарное веб-программирование
Скрипт (script) – это понятие в программировании, обозначающее последовательность команд для выполнения конкретных операций. По сути, это небольшая программа, заточенная под определенное действие. Скрипты используются в веб-разработке, в частности, чтобы автоматизировать операции. Существуют скриптовые языки программирования, заточенные под их написание, – так называемые «языки сценариев». Скриптовые ЯП обычно интерпретируемые, а не компилируемые.С помощью сценариев выполняется огромное количество рутинных операций, например:сбор статистики. Счетчики посещаемости, аналитические системы – все они используют скрипты, которые подсчитывают нужную специалистам информацию. Чаще всего такой код написан на JS;обращения к БД. Сообщение между базой данных и интерфейсом сайта происходит постоянно, и его описывают скриптами, чаще всего на языке PHP;написание комментариев и ведение гостевых книг. Сервис добавления новых комментариев на сайт тоже работает за счет сценариев на PHP или JavaScript;динамическая подгрузка информации на странице без ее обновления. Например, кнопка «Показать еще» на странице магазина. Такие функции реализуются за счет технологии AJAX, в основе которой лежит работа скриптов на JavaScript;динамическое отображение элементов сайта. Меню, страницы фильтров интернет-магазина и многие другие элементы генерируются автоматически с помощью скриптов.
Прикладные и инструментальные программы
обработка текста
Обработка текстов — одно из первых по значимости (после собственно вычислительных задач и управления приборами), приложениий компьютера. Важность этой задачи заключается не только в огромных возможностях, предоставляемых компьютером для набора и редактирования, но и в том, что и взаимодействие пользователя с системой, и хранение и обмен данными в системе зачастую происходят именно в текстовой форме.Различают две основные группы программ подготовки текстовых документов: текстовые редакторы и текстовые процессоры.Текстовыми редакторами называют программы, создающие текстовые файлы без элементов форматирования. Все многообразие современных текстовых редакторов условно можно разбить на три основные группы:простейшие текстовые редакторы, обладающие минимумом возможностей и способные работать с документами в обычном текстовом формате.txt, который, как известно, при всей своей простоте и всеобщей поддержке совершенно не позволяет более или менее прилично форматировать текст. К этой группе редакторов можно отнести как входящие в комплект поставки ОС семейства Windows редакторы WordPad и совсем малофункциональный NotePad (Блокнот), и множество аналогичных продуктов других производителей (Atlantis, EditPad, Aditor Pro, Gedit и т.д.).промежуточный класс текстовых редакторов включает в себя достаточно широкие возможности по части оформления документов. Они работают со всеми стандартными текстовыми файлами(TXT, RTF, DOC). К таким программам можно отнести Microsoft Works, Лексикон.к третьей группе относятся мощные текстовые процессоры, такие, как Microsoft Word или StarOffice Writer. Они выполняют практически все операции с текстом. Большинство пользователей использует именно эти редакторы в повседневной работе.
обработка звука
Аудиоредакторы — это программы для обработки звуковых файлов. С их помощью можно:• загружать, редактировать и сохранять звуковые файлы разных форматов;• записывать звук с микрофона;• вырезать фрагменты из звукового файла;• соединять звуковые фрагменты в один файл;• изменять громкость и темп звука;• удалять шумы.Для простой обработки звука можно использовать бесплатную кроссплатформенную программу Audacity. Известные профессиональные аудиоредакторы — Adobe Audition и Sound Forge.
обработка графики
Графические редакторы — это программы для создания и редактирования изображений. Изображения, хранящиеся в компьютере, делятся на растровые и векторные. С ними нужно работать по-разному, поэтому существуют отдельные программы для редактирования растровой и векторной графики, которые часто называют растровыми и векторными графические редакторами.Растровые редакторы предназначены для: обработки фотографий; подготовки изображений к печати; создания и редактирования изображений для веб-сайтов. Лучшим профессиональным растровым редактором считается программа Adobe Photoshop. Существуют её версии для операционных систем Windows и Mac OS (для компьютеров фирмы Apple). Стандартным приложением Windows является растровый редактор Paint, но для сложной обработки (например, для цветокоррекции фотографий) его возможности недостаточны. Бесплатная программа Gimp — кроссплатформенная, она работает как в Windows, так и в Linux. В последнее время были созданы бесплатные «онлайновые» редакторы (например, PIXLR), которые позволяют обрабатывать изображения на специальной веб-странице в Интернете, без установки дополнительного ПО на компьютер пользователя.Векторные редакторы используются для подготовки: художественных иллюстраций; технических иллюстраций (схем, графиков); логотипов, визиток, плакатов; изображений для веб-сайтов (иконок, кнопок). Среди профессиональных векторных редакторов можно назвать двух лидеров — программы Adobe Illustrator и CorelDraw. В свободно распространяемый пакет OpenOffice.org входит векторный редактор OpenOffice.org Draw. Бесплатный редактор Inkscape — ещё одна кроссплатформенная программа, работающая как в Windows, так и в Linux. Для работы с трёхмерными объектами используют программы специального класса — программы 3D-моделирования, которые позволяют: художественных иллюстраций; определить форму (геометрию) объектов сцены; задать материалы для объектов; установить источники света; определить точки наблюдения (виртуальные камеры); создать анимацию с трёхмерными объектами; выполнить рендеринг, т. е. построить изображение трёхмерных объектов и сцены на плоскости или последовательность кадров анимации с учётом свойств объектов и источников света. Среди программ 3D-моделирования, работающих в системе Windows, наиболее популярна 3D Studio MAX. В области кино и телевидения стандартом считается кроссплатформенная программа Мауа, у которой существуют версии для операционных систем Windows, Linux и Mac OS. Среди свободно распространяемых программ наиболее известна кроссплатформенная программа Blender.
обработка видео
Видеоредакторы — это программы для создания и обработки цифрового видео. С их помощью можно:• вводить данные с видеокамеры;• корректировать цвет кадров;• добавлять, переставлять и удалять фрагменты фильма;• добавлять звуки и титры;• сохранять фильм в различных цифровых видеоформатах;• создавать DVD-диски. Среди коммерческих видеоредакторов наиболее популярны Adobe Premier, Pinnacle Studio, VideoStudio Pro, Sony Vegas Pro. На компьютерах фирмы Apple используют программу iMovie. Существуют и бесплатные видеоредакторы, например программа Kdenlive для операционной системы Linux, программы VirtualDub и VSCD Free Video Editor для Windows и кроссплатформенная программа Avidemux.
пакеты программ
Пакет прикладных программ (application program package) – комплекс взаимосвязанных программ для решения задач определенного класса конкретной предметной области.Пакеты прикладных программ (ППП) служат программным инструментарием решения функциональных задач и являются самым многочисленным классом программных продуктов. В данный класс входят программные продукты, выполняющие обработку информации различных предметных областей.Можно выделить следующие виды ППП:Общего назначения. Примеры: текстовый процессор, электронные таблицы, графический редактор, СУБДОфисные пакеты. Для обеспечения деятельности офиса. Включают органайзеры, средства OCR и т. п.Проблемно-ориентированные. Для предметных областей, в которых возможна типизация структур данных, алгоритмов обработки и функций управления. Примеры: бухгалтерский учёт, управление персоналом.САПРНастольная издательская системаСистемы искусственного интеллекта. Системы с диалогом на естественном языке, экспертные системы и т. п.
MathCad
Mathcad – это среда вычислений, ориентированная на работу с документами, позволяет пользователям быстро и просто создавать детализированные технические документы, которые включают сложные вычисления, используя «живые» математические примечания с текстом, изображениями и диаграммами.
AutoCAD
AutoCAD — программа для автоматизированного проектирования и черчения. Её разработчик — компания Autodesk — выпустила первую версию этого продукта в далеком 1982 году. С тех пор более 30 лет AutoCAD совершенствуется по мере развития цифровых технологий. AutoCAD наиболее востребован в следующих отраслях:Архитектура и строительство.Промышленный дизайн и дизайн интерьеров.Конструкторские бюро.Телекоммуникационные компании.Геодезия и картография.Преимущества AutoCAD перед обычными чертежами:Абсолютная точность всех линий.Возможность вносить в чертеж корректировки любых масштабов и сложности.Неограниченное рабочее пространство.Удобство электронного формата — чертеж можно быстро скопировать, подготовить его измененную версию, переслать по электронной почте.За счет работы со слоями можно создавать сложные чертежи с наложением объектов — например, генеральные планы зданий, на которых различные системы коммуникаций отображаются на отдельных слоях.Возможность использовать старые наработки — готовые чертежи и 3D-модели различных типовых объектов.Автоматизация многих операций при подготовке чертежей — например, автоматическое проставление размеров для отрезков, подсчет площадей, объемов.Богатый инструментарий работы с трехмерными объектами — построение изометрических проекций на основе двухмерных чертежей, имитация освещенности.Простая интеграция с другими программами компании Autodesk — 3ds Max, Corel Draw, Archicad, Inventor, Civil 3D.
История математического моделирования и вычислительной математики
Математическое моделирование. Его истоки относятся к XVIIIв. Первые модели были предложены в 1759г. экономистом Куинсни. Первой попыткой представить экономику в виде взаимосвязанной статистической модели было создание французским ученным XVIIIв. Ф. Кенэ его ''Экономической таблицы ''. Это первая в истории моделирования макроэкономическая модель натуральных и денежных потоков. Она явилась прообразом модели Леонтьева. Ряд моделей спроса и предложения были разработаны в 1874г. французским ученым Вальрасом. Математические модели систем массового обслуживания разработаны Эрлангом в 1909г.В 1943г. рождается наука, получившая название ''исследование операций''. Это наука о применении математических моделей при принятии решений. Развивается научная база моделирования. В частности, разрабатывается линейное программирование, основы которого были заложены в работах Фон Неймана (1937г.) и Конторовича (1939г.).Широкое применение математического моделирования связано с созданием вычислительных машин. В 1944г. в США построена первая вычислительная машина ЭНИАК; в 1946г.- вычислительная машина ЮНИВАК; в 1951г. в СССР создана машина – БЭСМ-2. Вычислительные машины обеспечили техническую базу реализации математических моделей.Изобретение компьютера в середине XX века означало создание универсального инструмента для математических вычислений.