Страница: 1 |
Вопрос: Вычислительные системы | Добавлено: 08.05.09 19:54 |
Автор вопроса: ![]() |
Давно я не был уже на форуме.Началась учёба..первый год в университе,сложно учиться.Ну я канеш не особо и учучь;).Учусь на математическом факультете спецыальность Прикладная математика.Тоесть учим математику и как её испоьзывать на деле...тоесть программирования...Есть у нас Такой предмет как "Вычислительные системы" где мы создаем свою вычислительную машину с не боьшим наором команд...тоесть печатаеш команды например:
RDRA INCA 5 WRRA STOP программа анализирует и каждую строку и выпоняет определенные действия.Например RDRA -считывает значения целового типа в регистр RA,INCA -к регистру RA плюсует значения которое передаетса ей в параметре,WRRA-печает значения RA на экран,STOP-останавивает программу.Всё это реализируетса на ПАСКАЛЕ.Каждая команда имеет свой номер.Напимер RDRA-15, WRRA-13, STOP-0 и так дальше... Ну и вот сам то вопрос.Я например все команды записал в файл и возле каждой поставил её номер. Вот так: STOP 0 . . . WRRA 13 . . . RDRA 15 потом читаю всё это дело в массив ЗАПИСЕЙ(RECORD)(TYPE по бейсиковськи) а потом когда идет анализ просто перебираю эти записи в цыкле и ищу назву команды получаю ее код а потом кейсом по номеру команды выполняю действия которые отвечают данной команде.Но мой учитель по предмету мне рекомендует получать номер команды инным путем,говорит мой способ трудоемкий,я канеш с ним согласен, но вот что он мне предлагает(сначала кратко о командах:каждая комнда складенная из 4 символов,всего команд ~80): Розбить все команды по группам смотря с какой буквы они начинаютса тоесть: LDRA LDRI LOOP это одна група (первая буква одинакова) и писать такой код CASE CodeNAME[1] of (тоесть идет касе по первой букве) 'L':CASE CodeNAME[2] of 'D':CASE CodeNAME[3] of 'R':CASE CodeNAME[4] of 'A':{выполения LDRA} 'I':{выполения LDRІ} 'O':CASE CodeNAME[3] of 'O':CASE CodeNAME[4] of 'P':{выполнения LOOP} . . . ну и так дальше Тоесть оно действительно бережет силы процессора ...но силы программиста оно нещадит..это очень нудно и долго делать формировать эти кейсы...причем нет возможности после компилировки добавлять команды... с исходниками придеться таскаться и с компилятором,а еше их потом добавлять эт мучения. Кто что думет об этом?Как правильнее делать?Мне интересно ваше мнения! |
Ответы | Всего ответов: 6 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 08.05.09 21:57 |
lex, yacc |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #2 | Добавлено: 09.05.09 01:10 |
Препод видимо паскалист-геморойщик ![]() Моe мнение херней вы там занимаетесь вместо того чтоб для начала синтаксис сишных команд учить. Не пропадай, заглядывай почаще! |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #3 | Добавлено: 09.05.09 06:48 |
Не знаю, на большом кол-ве команд я, наверное, делал бы через Dictionary с делегатами.
То что препод советует, разумеется, будет работать (теоритически) быстрее, но я лично так бы не делал. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 408802757 Вопросов: 76 Ответов: 985 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 09.05.09 14:32 |
Smith пишет: Не пропадай, заглядывай почаще! -та уж буду стараться!смотря как со временем будет!
Smith пишет: Моe мнение херней вы там занимаетесь вместо того чтоб для начала синтаксис сишных команд учить. ну мы только основы учим.паскаль найболее легкий язык и то большинству с трудом даеться.
Smith пишет: Препод видимо паскалист-геморойщик ему класс покажешь и не поймет небось. -та не вроди за ним такого не замечал.Умный ,молодой дядя!шарит свое дело... но вот просто его способ мне не нрав потому что кажетса мне не практичным...хотя я и понимаю что работает он максимаьно быстро....
Steel Brand пишет:
-та блин и я так не хтю -геморойно как то!!!
но я лично так бы не делал. Dictionary с делегатами -ща прочту что это такое...
|
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #5 | Добавлено: 13.05.09 01:42 |
Ну его тот предмет, где паскаль учат...![]() ![]() |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #6 | Добавлено: 13.05.09 01:50 |
+1 |
Страница: 1 |
|