OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 21:26

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




Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Среда, 07 Декабрь, 2005 14:28 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
Коллеги!

Кто даст четкую инструкцию на след. запрос от жюри:

У нас есть желание использовать на областной олимпиаде программу автоматического тестирования задач. Для нее надо, чтобы транслятор был таким, чтобы его можно было запустить в пакетном режиме, подав на его вход исходник, и получить на выходе EXE-модуль. Затем программа тестирования запускает EXE-модуль в пакетном режиме, подавая на вход файл и получая выходной файл.
В связи с этим вопрос: как все-таки это сделать с Blackbox?

Инструкция нужна быстро, т.к. пора принимать решение о допуске КП на олимпиаду, которая будет ровно через месяц.

P.S. Почеркну, что речь идет об автоматич. проверке решений, подаваемых на КП


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 07 Декабрь, 2005 14:34 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
А.П. писал(а):
В связи с этим вопрос: как все-таки это сделать с Blackbox?


Ну, надо будет свою службу написать - расширение от Services.Action. Она в фоновом режиме, например, будет сканировать указанный каталог на предмет нового исходника, брать его, компилировать, запускать на выполнение, проверять результат. Задача, в принципе, вполне решаемая...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 07 Декабрь, 2005 15:02 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Я так понимаю, что автотестер уже есть, и нужно научить Блэкбокс вести себя как классический компилятор командной строки? Дайте подумать до выходных, может что и получится.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 07 Декабрь, 2005 15:08 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
Ivor писал(а):
Я так понимаю, что автотестер уже есть, и нужно научить Блэкбокс вести себя как классический компилятор командной строки?


Именно так, это типовой подход к организации проверок на "больших" олимпиадах по программированию.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 07 Декабрь, 2005 15:25 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Тогла ещё вопросы.

1. Как проверяется успешность компиляции? По коду возврата, наличию exe-файла или ещё как?
2. Сначала компилируются все программы а потом все запускаются, или для каждой программы идёт компиляция и запуск?
3. Тестируемые программы состоят из одного модуля или из нескольких?
4. Я так понял, у олимпиадной программы входные данные в текстовом файле и выходные она тоже пишет в файл. А уж корректность результата проверяют люди?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 07 Декабрь, 2005 15:38 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
Ivor писал(а):
Тогла ещё вопросы.

1. Как проверяется успешность компиляции? По коду возврата, наличию exe-файла или ещё как?
2. Сначала компилируются все программы а потом все запускаются, или для каждой программы идёт компиляция и запуск?
3. Тестируемые программы состоят из одного модуля или из нескольких?
4. Я так понял, у олимпиадной программы входные данные в текстовом файле и выходные она тоже пишет в файл. А уж корректность результата проверяют люди?


1. Пока не знаю.
2. По мере поступления от участников делается ехе-шник и задача последовательно запускается на все тесты и снимается по первой ошибке. Подсчитывается сумма баллов за успешно пройденные тесты.
3. Обычно это один модуль, т.к.задачи относительно простые, но с использованием библиотечных модулей ББ.
4. Да, но проверкавыполняется так: идет программное посимвольное сравнение с эталонными файлами ответов. Отступление от заданного формата вывода расценивается как грубая ошибка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 07 Декабрь, 2005 15:43 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Иван, Вы возьметесь за это дело? А то я уже тоже собрался. Чтобы нам вдвоем не дергаться...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 07 Декабрь, 2005 15:48 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Понятно.

Вы тогда узнайте, как проверяется успешность компиляции.

И ещё. Все участники с ББ - Ваша команда? Они пользуются одной подсистемой или у каждого своя?

Я просто к тому, сразу полноценный компилятор командной строки в ББ делать, или можно схитрить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 07 Декабрь, 2005 15:50 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Илья Ермаков писал(а):
Иван, Вы возьметесь за это дело? А то я уже тоже собрался. Чтобы нам вдвоем не дергаться...


Возьмусь. Хотя можно и параллельно. А там посмотрим, у кого лучше получится.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 07 Декабрь, 2005 18:03 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Ivor писал(а):
Понятно.

Вы тогда узнайте, как проверяется успешность компиляции.

И ещё. Все участники с ББ - Ваша команда? Они пользуются одной подсистемой или у каждого своя?

Я просто к тому, сразу полноценный компилятор командной строки в ББ делать, или можно схитрить.


Коллеги, по-моему, нужно просто "перепаковать" ББ, используя процедуры в пакете Olimp Информатики-21. Trurl их хорошо сделал.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 08 Декабрь, 2005 06:30 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
Ivor писал(а):
Вы тогда узнайте, как проверяется успешность компиляции.

И ещё. Все участники с ББ - Ваша команда? Они пользуются одной подсистемой или у каждого своя?

Я просто к тому, сразу полноценный компилятор командной строки в ББ делать, или можно схитрить.


За успешность отвечу позже :)

Видимо, в первый раз на КП будут работать только мои ученики. Другим в нашей области взяться пока неоткуда.

Лучше полноценный компилятор сделать. Но для страховки можно сначала хитрый-быстрый вариант соорудить.

Видимо, определенную трудность представит ввод/вывод в/из файлов данных во внешнем представлении - аналог процедур модулей StdLog и In.

О требуемых форматах файлов можно получить представление из условий задач, опубликованных на странице Андрея Станкевича, СПб http://ctddev.ifmo.ru/school/io/archive.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 08 Декабрь, 2005 06:34 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
Илья Ермаков писал(а):
Иван, Вы возьметесь за это дело? А то я уже тоже собрался. Чтобы нам вдвоем не дергаться...


Лучше параллельно. Там могут оказаться нехилые подводные камни.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 08 Декабрь, 2005 06:45 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
А.П. писал(а):
За успешность отвечу позже :)

В смысле возвращать мне код или факта создания экзешника будет достаточно?

Цитата:
Видимо, определенную трудность представит ввод/вывод в/из файлов данных во внешнем представлении - аналог процедур модулей StdLog и In.

А это действительно подсистема Info21olimp делает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 08 Декабрь, 2005 06:49 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
info21 писал(а):
Коллеги, по-моему, нужно просто "перепаковать" ББ, используя процедуры в пакете Olimp Информатики-21. Trurl их хорошо сделал.

Речь идёт о том, чтобы работал следующий bat-файл:
Код:
BlackBox.exe /compile %1 %2
if exist(%2) goto ok1
...
:ok1
%2
...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 08 Декабрь, 2005 07:02 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Да, ещё вопрос. Как Вы будете передавать программы для тестирования - только документы с исходными текстами или можно всю проститему целиком? Это я к тому, нужно ли именно компилировать модули или достаточно собрать exe (а откомпилированные модули в подсистеме отдать, типа ресурсы для работы программы :) )?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Декабрь, 2005 10:24 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Ivor писал(а):
Речь идёт о том, чтобы работал следующий bat-файл:
Код:
BlackBox.exe /compile %1 %2
if exist(%2) goto ok1
...
:ok1
%2
...

А может быть такой:
Код:
ren %1 *.exe

;)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 26 Июль, 2006 09:30 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
В рамках 6й Ершовской конференции (PSI 06) удалось поговорить с О.Б.Христенко, активным московским деятелем региональных соревнований ACM, представлявшим доклад на эту тему совместно с известным Е.В.Панкратьевым (мехмат МГУ).
Выясняется, что ситуация совсем не так мрачна, как нам ранее сообщали:

На самом деле в российских олимпиадных кругах существует вполне определенное стремление к независимости от американских организаторов и каких-то "финалов". Никаких идеологических препятствий к включению КП на российском уровне ***НЕТ***.

Нужно как можно скорее передать О.Б.Христенко (snark_acm AT mail.ru) линуксовый компилятор для Компонентного Паскаля -- командная строка, входные данные в простом текстовом файле; для данных целей, видимо, (пока) достаточно уметь компилировать единственный модуль с решением.

Это для системы тестирования. Уж как участники будут изготавливать файл с модулем решения -- отдельная задача (как я понимаю, они смогут работать в обычном ББ).

Важно начать этот процесс как можно быстрее -- детали "выгладятся" в процессе.

Олимпиадная команда делает решения задач для конкретного языка, если количество участников, его использующих, превосходит некий порог.
Т.е. вначале придется изготавливать такие решения (хотя бы переводом с Java и т.п.) нашему сообществу. Думаю, это будет несложно и кому-то покажется неплохим упражнением, а доводить решения до образцовости можно и на форуме.

Еще раз: важно начать этот процесс как можно быстрее и чисто конкретно -- детали "выгладятся" в процессе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 05 Сентябрь, 2006 12:27 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
Уважаемые коллеги!

Как бы нам коллективно дожать эту тему - Система автоматич.тестирования олимп.задач на КП - к декабрю, когда начинаются олимпиады для школьников? Да еще и раздать ее по городам и весям нашей необъятной.
Очень было бы полезно для дела :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 08 Январь, 2007 16:33 

Зарегистрирован: Суббота, 09 Декабрь, 2006 08:56
Сообщения: 35
Откуда: Беларусь
Добрый день.
Ну и как тестирующая программа?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 09 Январь, 2007 03:11 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Никак. Компилятор есть, но он приклеен к версии 1.6 и явно не входит число первоочередных задач. Хотя вроде работает. А "лёгкие" олимпиадные модули (не опирающиеся на Stores) есть частитчно в подсистеме Olimp, но функциональность у них немного не та (хотя может уже и та, я давно не смотрел)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.

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


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

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


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

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