Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте www.za4et.net.ru

Компьютеры, Программирование Компьютеры, Программирование

Системное программное обеспечение

Ночник-проектор "Звездное небо и планеты", фиолетовый.
Оригинальный светильник - ночник - проектор. Корпус поворачивается от руки. Источник света: 1) Лампочка (от карманных фонариков) 2) Три
330 руб
Раздел: Ночники
Ручка "Помада".
Шариковая ручка в виде тюбика помады. Расцветка корпуса в ассортименте, без возможности выбора!
25 руб
Раздел: Оригинальные ручки
Наклейки для поощрения "Смайлики 2".
Набор для поощрения на самоклеящейся бумаге. Формат 95х160 мм.
19 руб
Раздел: Наклейки для оценивания, поощрения

Разработка интерпретатора 1. Общее описание. Данный интерпретатор реализует основных арифметических действия в виде инфиксных операций над числами с плавающей точкой. Например входной поток имеет вид: r=2.5 area=pi r r (здесь pi имеет предопределенное значение). Тогда программа калькулятора выдаст: 2.5 19.635 Результат вычислений для первой входной строки равен 2.5, а результат для второй строки - это 19.635. Программа интерпретатора состоит из четырех основных частей: анализатора, функции ввода, таблицы имен и драйвера. Анализатор проводит синтаксический анализ, функция ввода обрабатывает входные данные и проводит лексический анализ, таблица имен хранит постоянную информацию, нужную для работы, а драйвер выполняет инициализацию, вывод результатов и обработку ошибок. 2. Анализатор. Грамматика языка калькулятора определяется следующими правилами: программа: E D // E D - это конец ввода список-выражений E D список-выражений: выражение PRI // PRI - это ' ' или ';' выражение PRI список-выражений выражение: выражение терм выражение - терм терм терм: терм / первичное терм первичное первичное первичное: UMBER // число с плавающей запятой в С AME // имя в языке С за исключением ' ' AME = выражение - первичное ( выражение ) Иными словами, программа есть последовательность строк, а каждая строка содержит одно или несколько выражений, разделенных точкой с запятой. Основные элементы выражения - это числа, имена и операции , /, , - (унарный и бинарный минус) и =. Имена необязательно описывать до использования. Для синтаксического анализа используется метод, обычно называемый рекурсивным спуском. Это распространенный и достаточно очевидный метод. В таких языках как С , то есть в которых операция вызова не сопряжена с большими накладными расходами, это метод эффективен. Для каждого правила грамматики имеется своя функция, которая вызывает другие функции. Терминальные символы (например, E D, UMBER, и -) распознаются лексическим анализатором ge oke (). Нетерминальные символы распознаются функциями синтаксического анализатора expr(), erm() и prim(). Как только оба операнда выражения или подвыражения стали известны, оно вычисляется. В настоящем трансляторе в этот момент создаются команды, вычисляющие выражение. Анализатор использует для ввода функцию ge oke (). Значение последнего вызова ge oke () хранится в глобальной переменной curr ok. Переменная curr ok принимает значения элементов перечисления oke value: e um oke value { AME, UMBER, E D, PLUS=' ', MI US='-', MUL=' ', DIV='/', PRI =';', ASSIG ='=', LP='(', RP=')' }; oke value curr ok; Для всех функций анализатора предполагается, что ge oke () уже была вызвана, и поэтому в curr ok хранится следующая лексема, подлежащая анализу. Это позволяет анализатору заглядывать на одну лексему вперед. Каждая функция анализатора всегда читает на одну лексему больше, чем нужно для распознавания того правила, для которого она вызывалась. Каждая функция анализатора вычисляет "свое" выражение и возвращает его результат. Функция expr() обрабатывает сложение и вычитание. Она состоит из одного цикла, в котором распознанные термы складываются или вычитаются: double expr() // складывает и вычитает { double lef = erm(); for(;;) // ``вечно'' swi ch(curr ok) { case PLUS: ge oke (); // случай ' ' lef = erm(); break; case MI US: ge oke (); // случай '-' lef -= erm(); break; defaul : re ur lef ; } } Отметим, что выражения вида 2-3 4 вычисляются как (2-3) 4, что предопределяется правилами грамматики.

Функция erm() справляется с умножением и делением аналогично тому, как функция expr() со сложением и вычитанием: double erm() // умножает и складывает { double lef = prim(); for(;;) swi ch(curr ok) { case MUL: ge oke (); // случай ' ' lef = prim(); break; case DIV: ge oke (); // случай '/' double d = prim(); if (d == 0) re ur error("деление на 0"); lef /= d; break; defaul : re ur lef ; } } Проверка отсутствия деления на нуль необходима, поскольку результат деления на нуль неопределен и, как правило, приводит к катастрофе. Функция error() будет рассмотрена позже. Переменная d появляется в программе там, где она действительно нужна, и сразу же инициализируется. Функция prim, обрабатывающая первичное, во многом похожа на функции expr и erm(). double umber value; char ame s ri g; double prim() // обрабатывает первичное { swi ch (curr ok) { case UMBER: // константа с плавающей точкой ge oke (); re ur umber value; case AME: if (ge oke () == ASSIG ) { ame = i ser ( ame s ri g); ge oke (); ->value = expr(); re ur ->value; } re ur look( ame s ri g)->value; case MI US: // унарный минус ge oke (); re ur -prim(); case LP: ge oke (); double e = expr(); if (curr ok != RP) re ur error("требуется )"); ge oke (); re ur e; case E D: re ur 1; defaul : re ur error("требуется первичное"); } } Когда появляется UMBER (то есть константа с плавающей точкой), возвращается ее значение. Функция ввода ge oke () помещает значение константы в глобальную переменную umber value. Если в программе используются глобальные переменные, то часто это указывает на то, что структура не до конца проработана, и поэтому требуется некоторая оптимизация. Именно так обстоит дело в данном случае. В идеале лексема должна состоять из двух частей: значения, определяющего вид лексемы (в данной программе это oke value), и (если необходимо) собственно значения лексемы. Здесь же имеется только одна простая переменная curr ok, поэтому для хранения последнего прочитанного значения UMBER требуется глобальная переменная umber value. Такое решение проходит потому, что калькулятор во всех вычислениях вначале выбирает одно число, а затем считывает другое из входного потока. Если последнее значение UMBER хранится в глобальной переменной umber value, то строковое представление последнего значения AME хранится в ame s ri g. Перед тем, как что-либо делать с именем, интерпретатор должен заглянуть вперед, чтобы выяснить, будет ли ему присваиваться значение, или же будет только использоваться существующее его значение. В обоих случаях надо обратиться к таблице имен. Эта таблица состоит из записей, имеющих вид: s ruc ame { char s ri g; ame ex ; double value; }; Член ex используется только служебными функциями, работающими с таблицей: ame look(co s char ); ame i ser (co s char ); Обе функции возвращают указатель на ту запись ame, которая соответствует их параметру-строке. Функция look() "ругается", если имя не было занесено в таблицу. Это означает, что в калькуляторе можно использовать имя без предварительного описания, но в первый раз оно может появиться только в левой части присваивания.

3. Функция ввода Получение входных данных - часто самая запутанная часть программы. Причина кроется в том, что программа должна взаимодействовать с пользователем, то есть "мириться" с его прихотями, учитывать принятые соглашения и предусматривать кажущиеся редкими ошибки. Попытки заставить человека вести себя более удобным для машины образом, как правило, рассматриваются как неприемлемые, что справедливо. Задача ввода для функции низкого уровня состоит в последовательном считывании символов и составлении из них лексемы, с которой работают уже функции более высокого уровня. В этом примере низкоуровневый ввод делает функция ge oke (). Правила ввода для интерпретатора были специально выбраны несколько громоздкими для потоковых функций ввода. Незначительные изменения в определениях лексем превратили бы ge oke () в обманчиво простую функцию. Первая сложность состоит в том, что символ конца строки ' ' важен для калькулятора, но потоковые функции ввода воспринимают его как символ обобщенного пробела. Иначе говоря, для этих функций ' ' имеет значение только как символ, завершающий лексему. Поэтому приходится анализировать все обобщенные пробелы (пробел, табуляция и т.п.). Это делается в операторе do : char ch; do { // пропускает пробелы за исключением ' ' if(!ci .ge (ch)) re ur curr ok = E D; } while (ch!=' ' && isspace(ch)); Функция ci .ge (ch) читает один символ из стандартного входного потока в ch. Значение условия if(!ci .ge (ch)) - ложь, если из потока ci нельзя получить ни одного символа. Тогда возвращается лексема E D, чтобы закончить работу калькулятора. Операция ! ( O ) нужна потому, что в случае успешного считывания ge () возвращает ненулевое значение. Функция-подстановка isspace() из &l ;c ype.h> проверяет, не является ли ее параметр обобщенным пробелом. Она возвращает ненулевое значение, если является, и нуль в противном случае. Проверка реализуется как обращение к таблице, поэтому для скорости лучше вызывать isspace(), чем проверять самому. То же можно сказать о функциях isalpha(), isdigi () и isal um(), которые используются в ge oke (). После пропуска обобщенных пробелов следующий считанный символ определяет, какой будет начинающаяся с него лексема. Прежде, чем привести всю функцию, рассмотрим некоторые случаи отдельно. Лексемы ' ' и ';', завершающие выражение, обрабатываются следующим образом: swi ch (ch) { case ';': case ' ': ci >> ws; // пропуск обобщенного пробела re ur curr ok=PRI ; Необязательно снова пропускать пробел, но, сделав это, мы избежим повторных вызовов функции ge oke (). Переменная ws, описанная в файле &l ;s ream.h>, используется только как приемник ненужных пробелов. Ошибка во входных данных, а также конец ввода не будут обнаружены до следующего вызова функции ge oke (). Обратите внимание, как несколько меток выбора помечают одну последовательность операторов, заданную для этих вариантов. Для обоих символов (' ' и ';') возвращается лексема PRI , и она же помещается в curr ok. Числа обрабатываются следующим образом: case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '.'

Язык С был задуман Деннисом Ритчи (Dennis Ritchie) примерно в это время, и в 1973 г. он вместе с Кеном Томпсоном (Ken Tompson) по существу переписал на С все ядро UNIX, совершив настоящий подвиг в эпоху разработки системного программного обеспечения на языке ассемблера. В системах Linux доступен широкий диапазон языков программирования, многие из них свободно распространяются и есть на компакт-дисках или в архивах на FTP- сайтах в Интернете. Далее перечислена часть языков программирования, доступных программистам Linux: □ Ada; □ С; □ С++; □ Eiffel; □ Forth; □ Fortran; □ Icon; □ Java; □ JavaScript; □ Lisp; □ Modula 2; □ Modula 3; □ Oberon; □ Objective С; □ Pascal;  □ Perl; □ Prolog; □ PostScript; □ Python; □ Ruby; □ Smalltalk; □ PHP; □ Tcl/Tk; □ Bourne Shell. В главе 2 мы покажем, как применять оболочку Linux для разработки приложений малого и среднего размера. В оставшейся части книги мы сконцентрируемся главным образом на языке С и уделим основное внимание изучению программных интерфейсов ОС Linux с точки зрения программиста, поэтому мы рассчитываем на знание читателей языка программирования С

1. Разработка системного программного обеспечения

2. Проблемное и системное программное обеспечение

3. Системное и программное обеспечение

4. Программное обеспечение для модемов Lexand TS2400

5. Технология разработки программного обеспечения

6. Разработка программного обеспечения для оптимизации показателей надежности радиоэлектронных систем
7. Объектно-ориентированный подход к проектированию программного обеспечения на примере работы налоговой инспекции
8. Программное обеспечение персональных компьютеров

9. Программное обеспечение удалённого доступа к технической документации

10. Вирусы и антивирусное программное обеспечение

11. Программное обеспечение компьютеров. Архиваторы

12. Обзор современного программного обеспечения управления проектами

13. Продуктовая политика организации (на примере продвижения услуг программного обеспечения)

14. Программное обеспечение сетей ЭВМ

15. Охрана программного обеспечения

16. Программное обеспечение преемственности подготовки специалистов по физической культуре и спорту в системе "колледж-вуз"

Подгузники-трусики для девочек Huggies DryNights, 8-15 лет, 9 штук.
Деликатная защита на всю ночь для детей от 4х лет, страдающих энурезом. Одноразовые Трусики Хаггис Драйнайтс для девочек 8-15 лет (30 - 47
427 руб
Раздел: Обычные
Тетрадь общая с магнитной закладкой "FLUOR. Желтый", В5, 120 листов, клетка.
Формат - В5. Закладка - ляссе. Внутренний блок - офсет, клетка. Обложка - мелованный картон. Скрепление - книжный переплет. Отделка -
418 руб
Раздел: Прочие
Настольная игра "На память".
Следите за тем, в каком порядке загораются кнопки, а затем правильно повторите последовательность загоравшихся цветов! Отличная игра,
310 руб
Раздел: Прочие

17. Программное обеспечение календарного планирования и контроля

18. Методика создания программного обеспечения для систем управления предприятиями с использованием типовых программных компонентов

19. Этапы преодоления систем защиты программного обеспечения

20. Надежность программного обеспечения

21. Программное обеспечение почтового обмена

22. Развитие программного обеспечения
23. Документирование программного обеспечения
24. Классификация программного обеспечения ЭВМ

25. Постановка, настройка и исследование абонентского программного обеспечения сети Internet

26. Разновидности общесистемного программного обеспечения персональных ЭВМ

27. Технологии тестирования программного обеспечения

28. Технологии тестирования программного обеспечения

29. Свободное программное обеспечение: к чему приведет "свобода"?

30. Бухгалтерский учет компьютеров и программного обеспечения

31. Системная концепция обеспечения безопасности объектов

32. АИС управления серверным программным обеспечением на базе программного комплекса Webmin/Alterator

Ваза декоративная "Цветочный каприз", 10x10x24,5 см.
Ваза декоративная. Размер: 10x10x24,5 см. Материал: керамика.
311 руб
Раздел: Вазы
Ручка гелевая "BLGP-G1-5", синяя, 0,3 мм, 3 штуки.
Гелевая ручка Pilot имеет пластиковый корпус с резиновой манжеткой, которая снижает напряжение руки. Стержень с чернилами синего цвета в
345 руб
Раздел: Синие
Каталка детская "Mercedes-Benz SLS AMG С197" (белая).
Каталка "Mercedes-Benz SLS AMG С197" - это легкая пластиковая каталка для детей от года. Она может использоваться как дома, так
2590 руб
Раздел: Каталки

33. Аппаратура, программное обеспечение и микропрограммы

34. Информатика и программное обеспечение ПЭВМ

35. Моделирование надежности программного обеспечения

36. Общее понятие программного обеспечения. Гибкий экран

37. Определение операционной системы. Место ОС в программном обеспечении

38. Основные понятия и программное обеспечение систем реального времени
39. Прикладное программное обеспечение
40. Прикладное программное обеспечение

41. Программное обеспечение

42. Программное обеспечение Lotus-Notes

43. Программное обеспечение Линукс

44. Программное обеспечение системы принятия решений адаптивного робота

45. Программное обеспечение ЭВМ и языки программирования

46. Программное обеспечение. Операционная система

47. Проектирование процесса тестирования программного обеспечения

48. Разработка базы данных и прикладного программного обеспечения для автобусного парка

Рюкзак школьный с эргономичной спинкой "Neon. Модель Multi Pack".
Ранец с эргономичной спинкой. Жесткий каркас. Вмещает формат А4+. Размер: 40x32x18 см. Имеет два отделения на молнии, боковые карманы на
2306 руб
Раздел: Без наполнения
Кружка фарфоровая "FIFA 2018. Забивака. Класс!", 380 мл.
Объем: 380 мл. Материал: фарфор.
319 руб
Раздел: Кружки, посуда
Органайзер для обуви "Сороконожка".
Органайзер "Сороконожка", который можно повесить на дверное полотно, стену и другие поверхности, будет содержать всю Вашу обувь
1056 руб
Раздел: Полки напольные, стеллажи

49. Разработка интернет – магазина по продаже программного обеспечения

50. Разработка прикладного программного обеспечения деятельности предприятия в системе клиент-сервер

51. Разработка программного обеспечения для нахождения корней биквадратного уравнения

52. Разработка программного обеспечения для оценки уровня знаний студентов с применением технологии "Клиент-сервер"

53. Разработка программного обеспечения для фильтрации растровых изображений

54. Разработка программного обеспечения по автоматизации учебного процесса в колледже
55. Разработка программно–алгоритмических средств для определения надёжности программного обеспечения на основании моделирования работы системы типа "клиент–сервер"
56. Реинжиниринг программного обеспечения

57. Технологический процесс разработки программного обеспечения

58. Корпоративная локальная компьютерная сеть на предприятии по разработке программного обеспечения

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

60. Организационно-экономические мероприятия по совершенствованию качества выпускаемого программного обеспечения

61. Революция в программном обеспечении УЧПУ

62. Программное обеспечение базы данный "Экологический мониторинг"

63. Авторское право как институт правовой защиты прикладного программно-математического обеспечения ЭВМ

64. Программно-методическое обеспечение спецкурса

Магнитный лабиринт "Домашние животные".
Магнитный лабиринт "Домашние животные" - увлекательная игрушка для детей, развивающая мелкую моторику рук, координацию движений,
679 руб
Раздел: Сортеры, логические игрушки
Рюкзак для старших классов "Фантазия", 41x32x14 см.
Рюкзак "Фантазия" предназначен для учениц старших классов и студенток. Поклонницам нежной гаммы цветов придется по вкусу броский
621 руб
Раздел: Без наполнения
Мобиль на детскую кроватку "Music Bed Bell" (свет, звук).
Погремушка станет отличным помощником, она позволит привлечь внимание ребенка. Мобиль на детскую кроватку Music Bed Bell - это отличное
1475 руб
Раздел: Мобили

65. Проблемы обеспечения продовольствием и перенаселение Земли

66. Планирование обеспечения горючим воинской части в мирное время

67. Территориальные особенности обеспеченности хозяйства Украины природными ресурсами (Контрольная)

68. Геодезическое обеспечение при строительстве мостов

69. Проблемы пенсионного обеспечения в РФ

70. Деятельность органов внутренних дел по обеспечению режима чрезвычайного положения
71. Залог - как способ обеспечения исполнения обязательств
72. "Военный коммунизм" - вынужденная политика или программный идеал большевизма

73. Правовое обеспечение деятельности внебюджетных фондов (Контрольная)

74. Роль главы государства в обеспечении конституционных прав личности в РФ

75. Обеспечение национальной безопасности РК в контексте интеграционных связей стран СНГ (с 1991-2001г.г.)

76. Правовое обеспечение информациооных систем

77. Нормативно - правовая основа социального обеспечения военнослужащих

78. Право социального обеспечения

79. Служба документационного обеспечения управления

80. Медицинское обеспечение российской армии в период Первой Мировой Войны

Доска магнитно-маркерная, 120х90 см.
Доска имеет магнитную поверхность. Алюминиевая рамка соединяется пластиковыми уголками, имеет регулируемые элементы крепления,
3010 руб
Раздел: Доски магнитно-маркерные
Фигурка декоративная, музыкальная "Лошадка", 22x7x21 см.
Лошадка-качалка декоративная, музыкальная, с функцией движения и раскачивания, с механическим заводом. Размер: 22x7x21 см. Материал: полистоун.
857 руб
Раздел: Миниатюры
Трикотажная пеленка кокон "Bambola" (цвет: бежевый).
Состав: интерлок, хлопок 100%. Возраст: 0-3 месяца.
381 руб
Раздел: Пелёнки

81. Управление системой "Интеллектуальный дом" через Интернет. Аппаратно-программные решения внутренней сети

82. Оценка методов и средств обеспечения безошибочности передачи данных в сетях

83. Системная шина

84. Краткий конспект лекций по Теории тестирования аппаратных и программных средств

85. Аппаратное обеспечение персональных компьютеров

86. Современные системные платы
87. Программатор ПЗУ /программный интерфейс/
88. Системный анализ

89. Системное программирование

90. Программное сопровождение практических работ по курсу "Конструирование и проектирование одежды"

91. Оптимизация плана работ по отладке программных продуктов

92. Крупнейшие фирмы-разработчики операционных систем и программных средств

93. Применение программного комплекса Electronics Workbench для разработки радиоэлектронных устройств

94. Вопросы к дисциплине: Стандартизация и проектирование программных средств (СППС)

95. Основы теории систем и системный анализ

96. Системная красная волчанка

Демонстрационные шахматы, магнитные.
Об этих шахматах говорит само их название. Они предназначены для шахматных школ, кружков или секций. Основное преимущество
2295 руб
Раздел: Шахматы
Фоторамка "Asti" (30х40 см).
Рамка для фото формата 30х40 см. Материал: дерево. Материалы, использованные в изготовлении рамок, обеспечивают высокое качество хранения
431 руб
Раздел: Размер 30x40
Свеча "Gardex Family" репеллентная от комаров.
Свеча обеспечивает защиту от комаров на открытом воздухе и в жилых помещениях в течение всего времени горения (до 30 часов) за счет
355 руб
Раздел: Спираль

97. Деятельность органов внутренних дел по обеспечению режима чрезвычайного положения

98. Совет Безопасности ООН и его роль в обеспечении мира и всеобщей безопасности

99. Инженерно-техническое обеспечение охраны объектов


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.