OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 19 Ноябрь, 2017 06:00

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 07 Февраль, 2011 18:44 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 2846
Откуда: Астрахань
Возник уникальный курс по направлению Программная инженерия. Уникальный, потому как читается один раз. Когда создавался первый раз учебный план по направлению, этим курсом заткнули дыру - вместо физики. Планы на следующие года создавали уже с чувством, с толком и с расстановкой, и там такого курса нет (есть много отдельных курсов по программной инженерии).
Курс годовой, в первом семестре - экзамен, во втором - зачет. Одна лекция и одна лаба в неделю.
В принципе, что читать - понятно.
Проблема в следующем: это студенты первого курса и одновременно начинают изучать программирование на языке высокого уровня (это основы С++). До того они прошли основы алгоритмизации на основе Кумира, то есть писать программы в принципе умеют. Функции писали и массивы обрабатывали.

Не совсем понятно, как строить лабы. Вариантов - два.
Первый. Берем те же лабы, что и на программировании, и делаем их по науке: сверху-вниз, с пошаговым уточнением, через тестирование... Тут не совсем ясно, как это проверять. Отчет по лабе с описанием всех шагов требовать?
Второй. Берем ББ+КП и исполняем те же лабы. На основе школьной сборки, например. В первом семестре.
А во втором - английская версия ББ - 1.5 и лабы покрупнее.
А потом сравним и статистику соберем.

Кстати, может ли кто-нить какие-нить лабы покрупнее порекомендовать?
Вот у меня на системном ПО одна из лаб такая. Задается архитектура виртуальной машины, и надо реализовать интерпретатор. А проверку интерпретатора выполнять с помощью программы в кодах виртуальной машины.
Требования к реализации (на С++)
1. Объектно-ориентированный подход.
2. Модульный подход.
Процессор – отдельный класс, разделение на интерфейс и реализацию;
Выполнение команд – вызов функтора (не использовать оператор-переключатель!)
Память – динамический массив – поле-указатель в классе
Команды – иерархия классов-функторов;
Базовый класс – абстрактный класс Command с перегруженной операцией operator()
Пример архитектуры:
Цитата:
Одноадресная, стековая с адресным регистром
PSW – 32 бита = 16 + 4 + 12 = IP + SP + Flags
Память – байтовая, размер адреса = 16 бит.
Стек вычислений– 16 ячеек по 4 байта – в процессоре
адресный регистр – 2 байта
Типы данных:
Целые знаковые – 4 байта
Дробные – 4 байта
Структура команды, 24 бита:
Код операции – 7 бит, b – 1 бит
b = 0 – адрес (абсолютная адресация)
b = 1 – адрес + регистр (индексная или базовая)
Адрес – 16 бит
Безадресные команды занимают 1 байт = 8 бит

Загрузка адресного регистра: схема та же
b = 0 – целая константа в команде (константа = адрес)
b = 1 – регистр + константа в команде

Загрузка стека, копирование вершины стека, извлечение из стека.
Арифметика дробная в стеке, безадресная, сохранение в стеке
Арифметика целая знаковая в стеке, безадресная, сохранение в стеке
Переходы:
Безусловный прямой: IP = адрес (константа в команде);
бит b работает по схеме загрузки адресного регистра:
b = 0 – адрес (константа) в команде (константа = адрес)
b = 1 – регистр + константа в команде
Если адрес = 0, то это косвенный переход по адресному регистру
Условный – то же самое, проверяет флаги;
Вызов подпрограммы, адрес возврата сохраняется в адресном регистре
Возврат – безусловный переход прямой: b = 1, регистр + 0


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2017, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB