- •Раздел 1. Общеобразовательные дисциплины
- •Раздел 2. Специальные дисциплины
- •Раздел 1. Общеобразовательные дисциплины
- •1.Основные понятия теории вероятностей. Случайные события, случайные величины. Функция распределения вероятностей, плотность распределения вероятностей.
- •2.Среднее значение (момента) случайных величин. Математическое ожидание, дисперсия.
- •3. Характеристическая функция случайных величин.
- •4. Нормальное (Гауссовское) распределение случайных величин. Плотность распределения и характеристическая функция момента.
- •5. Независимость случайных величин. Совместное распределение двух случайных величин. Условное распределение.
- •6. Семиуровневая модель osi/iso (гост р исо/мэк 7498-1-99).
- •Взаимодействие уровней модели osi
- •Уровень представления данных (Presentation layer)
- •Сеансовый уровень (Session layer)
- •Транспортный уровень (Transport Layer)
- •Сетевой уровень (Network Layer)
- •Канальный уровень (Data Link)
- •Физический уровень (Physical Layer)
- •7. Технико-экономические аспекты создания программного обеспечения вс. Оценка стоимости программной разработки.
- •8. Распределение затрат по фазам и видам работ программной разработки.
- •9. Компилятор в языках высокого уровня. Функции. Виды компиляторов.
- •Функции
- •Компиляторы
- •10. Ассемблер. Основные языковые конструкции. Необходимость двухпроходной трансляции. Основные работы, выполняемые транслятором. Таблицы транслятора.
- •11. Формальный язык. Грамматика. Сентенциальная форма. Нисходящий и восходящий анализ.
- •Грамматика
- •12. Понятие алгоритма и его свойства. Нормальные алгоритмы Маркова.
- •13. Иерархия запоминающих устройств. Кэш-память. Работа с кэш-памятью.
- •14. Прерывания. Классификация прерываний. Организация обработки прерываний.
- •15. Виды параллелизма. Векторная и конвейерная обработка. Классификация вычислительных комплексов по сочетанию потоков данных и потоков команд.
- •16. Информационная интегрированная среда предприятия. Общая база данных об изделиях (обди). Разделы обди.
- •17. Электронный документ. Технический электронный документ: форма представления, виды, жизненный цикл.
- •18. Электронная цифровая подпись. Суть и процесс использования электронной цифровой подписи.
- •19. Автоматизированные информационные системы. Цели и методы автоматизации.
- •20. Автоматизированные информационные системы. Математическое и программное обеспечение. Математическая модель. Программное изделие.
- •21. Свободное программное обеспечение: суть, области и проблемы использования.
- •22. Жизненный цикл программного обеспечения. Длительность. Состав. Стадии сопровождения.
- •Раздел 2. Специальные дисциплины
- •1. Модуль в языке System Verilog. Определение модуля, его применение. Задание портов и параметров.
- •2. Типы данных. Wire, reg, logic. Массивы. Строковый тип. Задание числе (в двоичном, десятичном, шестнадцатиричном виде).
- •3. Примитивы, типы примитивов. Объявление и применение примитивов.
- •4. Процедурные блоки (initial и always). Операторы управления временем.
- •Управление временем
- •5. Процедурные операторы. Операторы условного перехода. Операторы цикла. Операторы назначения. Оператор непрерывного назначения.
- •6. Маршрут проектирования программ плис. Средства разработки и проверки. Структура плис. Временные задержки сигналов
- •7. Математическое, программное и информационное обеспечение сапр. Математическая модель. Программное изделие.
- •8. Виды обеспечений, типы подсистем сапр. Общие требования к типовым сапр рэа.
- •9. Принципы измерения вектора движения ка
- •10. Геоцентрическая инерциальная система координат. Прямоугольные, сферические и геодезические координаты
- •11. Классификация орбит ка по параметрам движения. Параметры орбиты по Кеплеру.
- •12. Четыре основных свойства по.
- •13. Каскадная и спиральная модель жизненного цикла программного обеспечения
- •V модель (разработка через тестирование)
- •14. Биологический нейрон. Математическая модель нейрона. Связь искусственных нейронных сетей (инс) с другими дисциплинами. Проблемы, решаемые в контексте инс.
- •15. Архитектура нейронных сетей. Однослойный персептрон. Функции активации. Многослойный персептрон.
- •16. Понятие обучения. Методы обучения. Обучение персептрона. Процедура обратного распространения.
- •Метод к- ближайших соседей
- •Процедура обратного распространения
- •17. Гипотеза Хебба. Гипотеза ковариации. Конкурентное обучение.
- •18. Понятие vc-измерения (Вапника-Червоненкиса). Оценки обобщающей способности в задаче классификации. Теорема об универсальной аппроксимации.
- •19. Сети с локальным базисом. Сравнение сетей rbf с многослойным персептроном.
- •20. Сети Кохонена. Формализация задачи классификации для сети Кохонена. Алгоритм классификации для сети Кохонена.
- •21. Обучение Больцмана. Стохастические модели. Правило обучения Больцмана. Машина Больцмана.
- •22. Нейрокомпьютеры. Основные понятия. Классификация нейрокомпьютеров.
- •1. Что такое нейрокомпьютер?
- •2. Нейронные сети - основные понятия и определения
- •3. Модели нейронных сетей
- •3.1. Модель Маккалоха
- •3.2. Модель Розенблата
- •3.3. Модель Хопфилда
- •3.4. Модель сети с обратным распространением
- •4. Задачи, решаемые на основе нейронных сетей
- •5. Способы реализации нейронных сетей
- •6. Выводы
11. Формальный язык. Грамматика. Сентенциальная форма. Нисходящий и восходящий анализ.
Любой язык –– и естественный и искусственный –– обладает набором определенных правил. Они могут быть явно и строго сформулированными (формализованными), а могут допускать различные варианты их использования.
Формализованный (формальный) язык –– язык, характеризующийся точными правилами построения выражений и их понимания. Он строится в соответствии с четкими правилами, обеспечивая непротиворечивое, точное и компактное отображение свойств и отношений изучаемой предметной области (моделируемых объектов).
В отличие от естественных языков формальным языкам присущи четко сформулированные правила семантической интерпретации и синтаксического преобразования используемых знаков, а также то, что смысл и значение знаков не изменяется в зависимости от каких-либо прагматических обстоятельств (например, от контекста).
Большинство формальных языков (созданных конструкций) строится по следующей схеме. сначала выбирается алфавит, или совокупность исходных символов, из которых будут строиться все выражения языка; затем описывается синтаксис языка, то есть правила построения осмысленных выражений. Буквами в алфавите формального языка могут быть и буквы алфавитов естественных языков, и скобки, и специальные знаки и т.п. Из букв, по определенным правилам можно составлять слова и выражения. Осмысленные выражения получаются в формальном языке, только если соблюдены определенные в языке правила образования. Для каждого формального языка совокупность этих правил должна быть строго определена и модификация любого из них приводит чаще всего к появлению новой разновидности (диалекта) этого языка.
С точки зрения информатики, среди формальных языков наиболее значительную роль играют формальный язык логики (язык алгебры логики) и языки программирования.
Возникновение языков программирования приходится на начало 50-х годов XX века.
Языков программирования и их диалектов (разновидностей) насчитывается несколько тысяч. Классифицировать их можно по-разному. Некоторые авторы разбивают все многообразие языков программирования на процедурные и декларативные. В процедурных языках преобразование данных задается с помощью описания последовательности действий над ними. В декларативных языках преобразование данных задается посредством описания отношений между самими данными. Согласно другой классификации, языки программирования можно разделить на процедурные, функциональные, логические, объектно-ориентированные. Однако любая классификация несколько условна, поскольку, как правило, большинство языков программирования включает в себя возможности языков разных типов.
Грамматика
Описанию грамматики языка предшествует описание его алфавита. Алфавит любого языка состоит из фиксированного набора символов, однозначно трактуемых. Алфавит языков программирования, как правило, связан с литерами клавиатуры печатной машинки. Клавиатуры персональных компьютеров близки к ним по наличию литер.
Большинство популярных языков программирования в своем алфавите содержат следующие элементы:
<буква>::= AaBbCcDd и т.д.
<цифра>::=0 1 2 3 4 5 6 7 8 9
<знак арифметической операции>::=* / + -
<разделитель>::=. , ; : ( ) { } [ ] ‘ :=
<служебное слово>::= begin end if и т.д.
<спецсимвол>::=<знак арифметической операции> | <разделитель> | <служебное слово>
<основной символ>::=<буква> | <цифра> | <спецсимвол>
<комментарий>::=<любая последовательность символов>
Несмотря на значительные различия между языками программирования, ряд фундаментальных понятий в большинстве из них схожи. Приведем часть этих понятий.
Оператор – одно из ведущих понятий всех языков программирования теоретически, за исключением чисто декларативных; но в действительности и они используют родственное понятие). Каждый оператор представляет собой законченную фразу языка и определяет однозначно трактуемый этап обработки данных. B соответствии с теорией алгоритмов выделяют основные (базисные) операторы языка: присвоения, условный и безусловный переход, пустой оператор. К производным, не основным, относят составной оператор, оператор выбора, оператор цикла и оператор присоединения.
Все операторы языка в тексте программы отделяются друг от друга явными или неявными разделителями.
Всем программным объектам в языках даются индивидуальные имена. Имя пpoграммного объекта называют идентификатором (от слова «идентифицировать») Чаще всего идентификатором является любая конечная последовательность букв и цифр, начинающаяся с буквы:
<идентификатор>:=<буква>|<идентификатор>|<буква>|<идентификатор> <цифра>
Как правило, в большинстве языков программирования в качестве идентификатора запрещается использовать служебные слова языка.
Многим слово «идентификатор» не нравится, и в настоящее время чаще употребляют слово «имя», поскольку
<имя>::=<идентификатор>.
Программисты выбирают имена по своему усмотрению. Принципы выбора и назначения имен программным объектам естественны. Следует избегать мало выразительных обозначений, не гоняться за краткими именами. Имена должны быть понятны, наглядны, отражать суть обозначаемого объекта. Например,
Summa, Time, i,j, integral, init и т.п.
Некоторым идентификаторам заранее предписан определенный смысл и их называют стандартными, например, Sin – это имя известной математической функции.
Описания или объявления программных объектов связаны с правилами обработки данных. Данные бывают разные и необходимо для каждого из них определить его свойства. Например, если в качестве данных выступает массив, то необходимо задать его размерность, границы индексов, тип элементов массива. Описательная часть языка программирования является необходимой как для системных программистов – разработчиков трансляторов, которые должны, в частности, проводить синтаксическую и семантическую диагностику программ, – так и для «прикладного» программиста, которому объявления программных объектов часто облегчают процесс разработки и отладки программ.
Переменные играют важнейшую роль в системах программирования. Понятие «переменная» в языках программирования отличается от общепринятого в математике. Переменная – это программный объект, способный принимать некоторое значение с помощью оператора присваивания. В ходе выполнения программы значения переменной могут неоднократно изменяться. Каждая переменная после ее описания отождествляется с некоторой ячейкой памяти, содержимое которой является ее значением.
Функция – это программный объект, задающий вычислительную процедуру определения значения, зависимого от некоторых аргументов. Вводится в языки программирования для задания программистом необходимых ему функциональных зависимостей. В каждом языке высокого уровня имеется в наличии библиотека стандартных функций: арифметических, логических, символьных, файловых и т.п. Функции –стандартные и задаваемые программистом – используются в программе в выражениях.
Процедура – это программный объект, представляющий некоторый самостоятельный этап обработки данных. По сути, процедуры явились преемниками подпрограмм, которые были введены для облегчения разработки программ еще на самых ранних стадиях формирования алгоритмических языков. Процедура имеет входные и выходные параметры, называемые формальными. При использовании процедуры формальные параметры заменяются на фактические.
Модуль (Unit) – это специальная программная единица, предназначенная для создания библиотек и разделения больших программ на логически связанные блоки.
По сути, модуль – это набор констант, типов данных, переменных, процедур и функций. В состав модуля входят разделы: заголовок, интерфейс, реализация, инициализация.
Сентенциальная форма грамматики - это строка, которая может быть выведена из стартового символа.
Предложение (сентенция) грамматики - это сентенциальная форма, состоящая из одних терминалов.
Нисходящий синтаксический анализ, или анализ через синтез, начинает с выдвижения предположений о крупномасштабной структуре предложения, а затем уточняет и детализирует это предположение, рекурсивно опускаясь на уровень конкретных слов. Другими словами, этот алгоритм инициирует разбор с начального нетерминала S.
Восходящий синтаксический анализ начинает разбор с конкретных слов, связывая сначала пары слов, затем подсоединяет к этим парам новые слова или другие связанные пары. Постепенно процесс связывания доходит до начального нетерминала S - то есть все слова в предложения оказываются связаны в единую структуру.