Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatsionnye_tekhnologii_v_yurisprudentsii_N.docx
Скачиваний:
15
Добавлен:
21.03.2016
Размер:
230.68 Кб
Скачать

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

Ноутбук наш бесполезен без программного обеспечения. Это обеспечение – ¾ ИТ индустрии. В начале была во главе угла продажа железа, а программирование стало появляться в конце 60-начале 70. И ближе к 80 только успехи в программировании.

Есть осуществляется удаленный доступ, но это уже ИТ услуги. Мы непосредственно программное обеспечение в этом случае не загружаем.

Для того, чтобы написать программу, сначала нужно определить алгоритм действий, т.е. последовательность команд. Алгоритм определяется задачей. В слайдах пример линейного алгоритма про деление дробей. Существует еще и логарифмический язык. Все обозначения были введены академиком Ершовым. Во втором слайде у нас уже более интересный пример, где все не так просто. Тут квадратное уравнение. Два решения, стало быть. И алгоритм здесь уже не линейный: он представляет собой разветвленную схему. Нелинейные алгоритмы используются намного чаще.

Третий слайд – тут добавляется «если …, то…». Программный код может быть на сотни страниц. Отступы означают определенный блок операций, это мелочь и вопросы техники.

Далее у нас идет факториал.n! Подбираем, вычисляем, а потом фиксируем на последней стадии нужное значение. Пока коэффициент меньшеn, мы продолжаем вычисление. Это следующий слайд как это пишется.

Теперь у нас слайд «степенная функция». Можно один раз написать, а потом использовать, а не писать заново. Ну короче на этом слайде как бы показывается, что можно построить подпрограмму (процедура степень), которая будет вызываться из главной программы. Это помогает нам экономить, вынося типовые действия за рамки алгоритма.

Языки программирования– конструкция сложная. Этоформальная знаковая система, предназначенная для записи компьютерных программ.При этом, внутри этого языка есть определенный набор элементов, синтаксиса, семантики и лексических структур. «Язык программирования определяет наборлексических,синтаксическихисемантическихправил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением».

Исторически языки развивались сложным образом и их очень много и в силу требований создателей, некоторые языки приспособлены только для движения трехмерных, а в других – практически это не сделать. Какого-то одного универсального языка нет, под каждую задачу, на самом деле, ищут конкретный язык (например язык «Ада» был разработан военными США в 80х годах для военных целей (единая система управления автоматизированных систем), а язык BASICв 1963 году профессорами Дартмутского колледжа и был предназначен для решения совсем иных задач). Профессионал высокого уровня должен на базовом уровне мочь разобраться во всем, и общая корреляция есть. Но для сложных задач лучше, конечно, привлечь специалиста.

Сначала пытались программировать через автокоды, ассемблеры. Это через нолики и единички. Потом пошли ассемблеры, которые непосредственно оперируют с байтами, ячейками памяти. Тут есть синтаксисmov,intи т.д. На языке программирования это сделать намного легче. Тут о ячейках памяти думать не надо. Правда не всегда это хорошо работает, особенно, когда надо добиться быстродействие. Или в условиях ограниченности памяти. Поэтому языки низкого уровня все еще существуют.

Ассе́мблер(отангл.assembler— сборщик) — компьютерная программа,компиляторисходного текста программы, написанной наязыке ассемблера, в программу намашинном языке.

Компиляция—трансляция программы, составленной на исходномязыке высокого уровня, в эквивалентную программу нанизкоуровневом языке, близкоммашинному коду(абсолютный код,объектный модуль, иногда наязык ассемблера). Входной информацией для компилятора (исходный код) является описание алгоритма или программа напроблемно-ориентированном языке, а на выходе компилятора — эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код).

Язык ассе́мблера, он же автокод(англ.assembly language) — машинно-ориентированныйязык низкого уровняс командами, обычно соответствующимикомандам машины, который может обеспечить дополнительные возможности вродемакрокоманд.Автокод— язык программирования, предложения которого по своей структуре в основном подобны командам и обрабатываемым данным конкретногомашинного языка.

Язык ассемблера — система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. Язык ассемблера позволяет программисту пользоваться алфавитными мнемоническими кодами операций, по своему усмотрению присваивать символические имена регистрам ЭВМи памяти, а также задавать удобные для себя схемыадресации(например, индексную или косвенную). Кроме того, он позволяет использовать различные системы счисления (например,десятичнуюилишестнадцатеричную) для представления числовых констант и даёт возможность помечать строки программы метками с символическими именами с тем, чтобы к ним можно было обращаться (по именам, а не по адресам) из других частей программы (например, для передачи управления).

Машинный код(платформенно-ориентированный код),машинный язык—система команд(набор кодов операций) конкретнойвычислительной машины, котораяинтерпретируетсянепосредственнопроцессоромилимикропрограммамиэтой вычислительной машины.

Fortran, Cobol, Algol(последний был популярен в Европе) – 1954 и 1958: первые языки программирования высокого уровня. Там уже можно было нормально в семантике языка записывать математические операции. Там уже есть специальные команды, типа, возведение в степень, а не как в ассемблере – писать 10 страниц для этого.

После этого стало (ввиду потребности) появляться много-много языков. Basic(1967) – просто и со вкусом, без знания тонкостей, но все это очень простенько, для домохозяек, сложных задач там не решить.

В 1971 году Николас Вирт разработал Pascal, а так же появился язык «С» в этом же году. Они оказались крайне удачными.If– та самая развилка. #include– с этого начинается язык «С» на слайдах.

Си(англ.«C») —стандартизированныйпроцедурныйязык программирования, разработанный в начале1970-х годовсотрудникамиBell LabsКеном ТомпсономиДеннисом Ритчикак развитие языкаБи. Си был создан для использования воперационной системеUNIX. С тех пор он былперенесённа многие другие операционные системы и стал одним из самых используемых языков программирования. Си ценят за его эффективность. Он является самым популярным языком для созданиясистемного программного обеспечения.

Помимо ассемблеров и языков высокого уровня стали появляться специализированные языки программирования. Самый знаменитый –Prolog. В чем проблема – вот мы пишем эти программы, но человек не рассуждает такими командами. Поэтому решили создать языки, формализующие конструкции логического человеческого мышления. Это логические, а не вычислительные. Основная задача языка – отработка логики. Языков было разработано очень много. Каждый разрабатывал их из своего представления, че и как надо делать. Большинство из таких языков умерло.

Языки программирования можно поделить на компилируемые и интерпретируемые. После того, как языки придумали нужно было придумать средство специальное для написания программ. И мысль в этом направлении стала развиваться двумя путями. Интерпретируемые – условно говоря, вещь в себе: мы загружаем программную оболочку и там же что-то программируем, что-то запускаем. Это, например, МSOffice, там в экселе можно нахуячить последствия команд. Но вне оболочки Офиса их не запустить.

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

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

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

Программирование с позиции отрасли экономики – сложный процесс, который состоит из стадий:

  1. Спецификация (постановка задач, по сути)

  2. Разработка алгоритма (записать или держать в голове)

  3. Инженерия/Кодирование (запись алгоритма на языке программирования)

  4. Отладка

  5. Тестирование

  6. Создание справочной системы

Процесс сей кстати, во многом описан в ГОСТах типа «процессы жизненного цикла программных средств». Всегда есть ошибки. Можно забыть скобочку и хуй знает теперь, где цикл заканчивается. Для этого нужна отладка. Она говорит «забыли скобку, написали не ту команду». Бывает хуже, когда при написании была ошибка, все работает, но не так как надо. Тут сложнее, надо искать ошибку.

Далее идет тестирование. Все очень сложно и даже в нормально созданной программе могут быть сбои. Ну что-то забыли очевидное, типа деление на ноль. Ну или неправильно работает с несколькими программами. Для этого нужно тестирование. Запуск в разных условиях, специальные люди этим занимаются.

Отладка и тестирование занимает больше всего времени и ¾ денег! Очень, очень сложная система.

Последняя стадия – создание справочной системы. Это с позиции того, как программный код комментируется разработчиками. Что каждая операция делает. Когда тысячи страниц текста разобраться невозможно даже в рамках маленького коллектива.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]