Применение статического анализа при разработке программTatyanazaxarovaСтатический анализ - это способ проверки исходного кода программы на корректность. Процесс статического анализа состоит из трех этапов. Сначала анализируемый код разбивается на лексемы - константы, идентификаторы, и т. д. Эта операция выполняется лексером. Затем лексемы передаются синтаксическому анализатору, который выстраивает по этим лексемам дерево кода. Наконец, проводится статический анализ построенного дерева. В данной обзорной статье приведено описание трех методов статического анализа: анализ с обходом дерева кода, анализ потока данных и анализ потока данных с выбором путей.
Применение статического анализа при разработке программTatyanazaxarovaСтатический анализ - это способ проверки исходного кода программы на корректность. Процесс статического анализа состоит из трех этапов. Сначала анализируемый код разбивается на лексемы - константы, идентификаторы, и т. д. Эта операция выполняется лексером. Затем лексемы передаются синтаксическому анализатору, который выстраивает по этим лексемам дерево кода. Наконец, проводится статический анализ построенного дерева. В данной обзорной статье приведено описание трех методов статического анализа: анализ с обходом дерева кода, анализ потока данных и анализ потока данных с выбором путей.
Метрики кода программного обеспеченияTatyanazaxarovaВ работе приведен обзор 7 классов метрик и более 50 их представителей, дано детальное описание и используемые алгоритмы вычисления, описана роль метрик в разработке программного обеспечения.
ОСНОВНЫЕ ПРИНЦИПЫ РЕШЕНИЯ ЗАДАЧИ ПРЕОБРАЗОВАНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО КОД...ITMO UniversityОписано решение задачи преобразования исходного кода на объектно-ориентированном языке в формат RDF средствами семантического анализа. Рассмотрены основные принципы семантического анализа объектноориентированного кода и предложен архитектурный прототип программного продукта, осуществляющего преобразование кода в RDF.
Программирование как способ выражения мыслей. Levon AvakyanЯ расскажу на простейших примерах как функционирует современный компьютер, какие языки программирования бывают, для чего они используются, какие парадигмы лежат в их основе. По сути, язык программирования это инструмент, с помощью которого можно рассказать машине, чего же мы от неё хотим, тем самым воплотив свои мысли.
08. приказ мон днр от 15.12.2015 № 905 ,,об утв. инструкции по учету соп,,Аня Иванова08. приказ мон днр от 15.12.2015 № 905 ,,об утв. инструкции по учету соп,,
04. полож. мон днр от 06.08.2016 № 377 ,,типовое положение об учете детей,,Аня Иванова04. полож. мон днр от 06.08.2016 № 377 ,,типовое положение об учете детей,,
2. Темы занятия
Знакомство со средой Pascal.
Алфавит языка.
Типы данных.
Стандартные функции для целых и вещественных типов
данных.
Структура программы.
Подключение дополнительных модулей
Основные операторы.
Программы для вычисления арифметических выражений.
Часто используемые эффективные алгоритмы.
Операции целочисленного деления.
Целочисленная арифметика в линейных алгоритмах.
3. Развитие семейств языков 3
VISUAL BASIC С++
Object Pascal
Среда Delphi
BASIC
QBASIC
PASCAL С
VISUAL
PASCAL
Среда Borland Pascal
Среда Free Pascal
3
4. 1. Отвечает требованиям структурного
программирования
Позволяет строить программу из отдельных блоков.
• применяются три управляющие конструкции: следование,
выбор, повторение;
• структура программы отражает структуру данных;
• на первом этапе проводится проектирование программы, а
на втором её написание.
2. Строго типизированный язык
Содержит полный набор структурных типов данных, а
также развитые средства построения из них
новых типов данных.
Основные достоинства языка Pascal 4
4
5. Паскаль популярен среди программистов по
следующим причинам:
• Прост для обучения.
• Отражает фундаментальные идеи алгоритмов
в легко воспринимаемой форме.
• Позволяет четко реализовать идеи
структурного программирования и
структурной организации данных.
• Использование простых и гибких структур
управления: ветвлений, циклов.
• Надежность разрабатываемых программ.
5
6. Среда Free Pascal
меню возможных режимов
работы
справка о назначении основных
функциональных клавиш
имя файла
закрыть
текущее
окно
номер
текущего
окна
6
8. Комбинации с клавишами
функциональные клавиши F1 – F12
и ALT, CTRL и SHIFT.
Alt+ Enter – большой (маленький экран)
Ctrl+F9 – запуск программы на выполнение
Alt + 0 – список открытых файлов
Alt + <№ окна> – быстрый доступ к открытым файлам
F8 – для выполнения программы по строкам
F9 – компиляция + проверка
Ctrl+F9 – запуск
8
9. Алфавит языка Паскаль.
1. строчные и прописные латинские буквы,
2. арабские цифры,
3. _ подчеркивание,
4. знаки операций: символьные + - * / = <>
< > <= >= := @
буквенные mod, div, not
5. знаки пунктуации: . , ' ( ) [ ] (. .)
{ } (* *) .. : ;
6. спецификаторы: ^ # $
7. служебные слова.
ПАСКАЛЬ включает следующий набор основных символов:
10. Идентификатор - это имя любого объекта
языка, не должен начинаться с цифры.
К разделителям относятся, например, пробел и
комментарий.
Для пояснений можно делать комментарии,
которые не влияют на ход программы.
Комментарии заключаются в
фигурные скобки { комментарий },
символы (* комментарий *).
Неиспользуемые символы – те, которые можно
использовать только в комментариях. К ним
относятся все русские буквы, а также символы %, &, !.
11. В ЯП высокого уровня программа - это
перечень действий, команд.
Команда алгоритма, записанная на ЯП,
называется оператором.
Константа - это постоянная величина,
значение которой не изменяется в процессе
работы программы.
Переменная – величина, которая в процессе
выполнения программы может менять свое
значение по необходимости.
11
12. Объявление
идентификаторов
Однозначность
операций над
данными
Операции с
данными
ОПРЕДЕЛЕНИЕ ТИПА
ДАННЫХ
ИДЕНТИФИКАЦИЯ
ПЕРЕМЕННЫХ
ЗАДАНИЕ
ЗНАЧЕНИЙ
Работа с данными 12
12
Синтаксис:
Var <имя переменной>:<тип переменной>;
Тип данных — это характеристика идентификатора,
определяющая множество значений, которые он может
принимать (целые или дробные числа, строки и т. д.).
Процедура ввода информации с клавиатуры : Read или
ReadLn. Оператор присваивания :=
Var x: byte;
readln(a,b,c);
13. Описание некоторых типов
переменных
• Символьные:
• Var x: char; для переменных, содержащих 1 символ
• Строковые:
• Var x:string; для переменных, содержащих текст
• Целые числа:
• Var x: integer; для переменных, содержащих целые числа
• Вещественные числа:
• Var x: real; для переменных, содержащих вещественные
числа
14. Простые типы: одна переменная — одно значение.
Структурированные типы: одна переменная — несколько значений.
Типы данных 14
Простые Структурированные
Логические
(boolean)
Символьные
(char)
Перечисляемые
Интервальные
Строковый (string)
Регулярный (array)
Комбинированный (record)
Множественный (set)
byte,
shortint,
integer,
word,
longint
real,
single,
double,
extended,
comp
Файловый (file)
Целые
Вещественные
14
15. Арифметические операции:
+, −, *
div — вычисляет целую
часть от частного, дробная
откидывается.
10 div 3=3;
2 div 3=0;
mod — вычисляет остаток,
полученный при делении.
11 mod 5 = 1;
14 mod 5 = 4;
Операции с целыми переменными 15
15
16. Стандартные функции: Pi, Sqrt, Sin, Cos, Abs, Exp, Ln.
вычисление дробной части числа Frac(5.67)=0.67
вычисление целой части числа Int(5.67)=5.0E+00
округление вещественного числа до ближайшего целого
Round(5.67)=6
отбрасывание дробной части числа Trunc(5.67)=5
Арифметические операции: Sqr, +, -, *, /
Операции с вещественными переменными 16
16
вещественный → вещественный:
Frac, Int;
вещественный → целый:
Round, Trunc.
18. Имя программы, имена переменных
• Начинаются с буквы
• Без пробелов
• Могут содержать
• латинские буквы
• Цифры (начиная со второй позиции)
• символ подчеркивания (вместо пробелов)
19. Модуль расширяет возможности программ путём введения дополнительных
операторов, стандартных процедур и функций.
Пример включения стандартных модулей:
uses crt, dos, graph, printer.
Очистка текстового экрана.
Ожидание нажатия на клавишу.
Подключённый модуль
с именем CRT.
Подключение дополнительных модулей 19
19
20. Оператор ввода исходных данных.
Происходит с помощью оператора read
и readln:
Вид команды:
read (список переменных);
readln (список переменных);
Разница между операторами лишь в
том, что readln перемещает курсор на
начало новой строки, а read нет.
21. Вывод результатов
Происходит с помощью оператора
write и writeln:
Вид команды:
write (‘список вывода’);
writeln (‘список вывода’);
Разница между операторами лишь в
том, что writeln перемещает курсор на
начало новой строки, а write нет.
22. Пример:
Writeln('Мне16лет');
На экране появится: Мне 16 лет
a:=11;
Writeln('Я учусь в ', а,' классе');
На экране появится: Я учусь в 11 классе
х:=3;у:=6;
Writeln(х+у,' рублей');
На экране появится: 9 рублей
22
23. Команда присваивания
используется для изменения значений переменных, в
языке Паскаль эта команда обозначается так:
<имя переменной>:=<выражение>;
Тип значение выражения должен совпадать с типом
переменной.
Пример:
а:=2;
b:=8;
S:=а+b;
После выполненных последовательно данных
трех команд переменная S принимает значение равное
10.
24. ЗАДАЧА
Найти произведение двух целых чисел.
Решение:
1. Вводим два целых числа с клавиатуры.
2. Вычисляем их произведение.
3. Выводим результат на экран.
Program N2;
Var a, b :Integer; p: Longint;
Begin
Writeln(' Введите два числа ');
Readln(а,b);
р:=а*b;
Writeln (' произведение ', а ,' и ', b ,' равно', р);
Readln;
End.
26. 26
var x: integer;
y: real;
begin
x:=4;
y:=sqrt(x);
writeln(y);
end.
ПРИМЕР
На экране: 2.00000000000000E+000
Если writeln(y:6:0), то на экране: 2
Найти квадратный корень числа 4.
27. ЗАДАЧА
Составить программу, которая запрашивает у
пользователя два целых числа и выводит квадрат
суммы (а+b)2 и сумму квадратов а2+b2 этих чисел.
Пример работы программы:
Введите два числа
а=5
b=2
квадрат суммы 3 и 2 равен 25
сумма квадратов 3 и 2 равна 13