wizzard: (Default)
[personal profile] wizzard

родилась тут у меня мысль, что есть задачи с более-менее определенным ТЗ,
с которыми можно как-то так извернуться….
в общем, объявляется конкурс по написанию программ,
которые пишут другие программы.




Задание 0:

программа, которая ничего не принимает на вход,
и выводит “Hello, World”.

Задание 1:

программа, которая принимает на вход строку и выводит ее.
если введенная строка пуста – выводит “Hello, World”.

Задание 2:

программа, которая принимает на вход строку – имя математической операции,
а также 1 или 2 числа, в зависимости от того, сколько аргументов у операции.
Выводит результат операции.
Пример:

natural logarithm
5
1,6094379
addition
5
6
11
factorial
4
24
negate
6
-6

Можно, но не обязательно, сделать в генераторе выбор
набора поддерживаемых операций.

Задание 3:

программа, которая принимает на вход имя файла и имя хэш-алгоритма,
открывает файл (для простоты предположим, что он находится в текущей директории),
считывает его, считает хэш содержимого файла
и выводит его в шестнадцатеричном виде на экран.
Если хэш не поддерживается, выводит “Unknown hash algorithm”
Нужно реализовать хотя бы один из: CRC32, MD5, SHA1, SHA256
В идеале, генератор должен принимать на вход указание, считалку каких
именно хэш-алгоритмов реализовывать.

Условия:
  1. Программа-генератор и программа-результат могут использовать Google, Wikipedia,
    Koders.com и прочие онлайн-сервисы
  2. Задание программе-генератору подается в текстовом виде, так, как оно приведено
    выше. Программа-генератор может реализовывать одно или сразу несколько заданий.
    Если в задании есть несколько вариантов (например, задание 2 и 3), то можно генерировать
    ”какой получится” или дописывать в понятном человеку варианте, какой именно вариант.
  3. Программа не должна ни в каком виде включать в себя код специфических частей программ,
    которые создаются с ее помощью, но может включать в себя библиотеку подпрограмм
    общего назначения
  4. Программа может использовать базы данных любого вида и библиотеки исходного кода,
    созданные автором программы, при соблюдении 2 условий:
    • Эти файлы можно найти с использованием поисковых систем, или скачать со страниц,
      которые можно найти с использованием поисковых систем.
      Быстро индексируются Google Base, Google Pages, Blogger, ЖЖ и еще ряд сервисов,
      эти – первые, которые вспомнил.
    • Данные хранятся в открытом, незашифрованном виде, понятном не только автору,
      но и человеку
  5. Программа должна генерировать исходный код и бинарный файл (в случае, если
    код генерируется на компилируемом языке). Если требуется специфический компилятор,
    нужно укомплектовать программу инструкциями по скачиванию и установке.
  6. Для первой версии конкурса программа-результат должна работать из командной строки,
    работать с stdin/stdout и файлами.
  7. Программа-генератор может работать как из командной строки, так и иметь GUI.
    Построение веб-сервисов не рекомендуется из соображений сложностей копирования,
    развертывания, установки и изучения таких вещей
  8. Цель конкурса – создать мега-генератор ;)
    Поэтому программы на конкурс выдвигаются с исходным кодом. Можно объединяться,
    можно создавать работы на основе работ других участников.
    Это условие необязательное. Если хочется сохранить ноу-хау, то можно не публиковать
    исходный код (но предоставлять его нужно, иначе будет невозможно проверить,
    удовлетворяет ли программа пункту 2)
  9. Генераторы можно постить в комментах или присылать на e-mail wizzard0@gmail.com
    с пометкой в теме письма “Конкурс генераторов”
  10. Язык программирования – произвольный. Рекомендуется прикладывать также инструкции
    по тестированию и компиляции для других участников.

Если вам понравился конкурс – напишите о нём в своем журнале и поделитесь с друзьями :)
Принимаются поправки к условиям, ну и другие задания, естественно :)


только на UML

Date: 2009-02-11 05:06 pm (UTC)
From: [identity profile] d0tcom.livejournal.com
Так в RR только и было хорошего, что, как я теперь понимаю (см. заглавие), Вы называете рефакторингом. Я же под рефакторингом понимаю обратную операцию. Не, конечно, я её использовал. Чтоб в документацию вставить. Лень же самому писать, ведь туда нужно лишь красивые картинки, чтоб тебя за умного сочли, за работу побольше дали. А так в этой области ничего полезного не сделали, всё равно UML приходится писать практически с нуля.
То же, что Вы пытаетесь высказать дальше, по-моему, похоже на взгляд художника супротив писателя. В этом нет ничего плохого (и рисовать простенькие программы я тоже люблю, вместо того, чтобы текст набирать), если бы не одно но. Если бы было возможно излагать теорию иначе, чем на разговорном языке, то математики бы уже давно перешли на этот способ. Однако, они до сих пор пишут обычные тексты, хотя и пестрящие специальными символами. Так что ни синтаксическое дерево, ни UML не являются панацеями, а имеют лишь узкий круг применения для написания ширпотреба. Если уж замахиваться, то надо говорить не о деревьях или там графах, это уже давно устарело, а о матрицах, об алгебре, к использованию которой сейчас просматривается тенденция в самых передовых кругах (ага, Теория Всего Гарриета Ливси).
Блю рей это хорошо, да только идея многопоточности изначально заложена во все эти форматы, начиная с avi, и кончая всякими мп4 и матроссками. Вот я и удивляюсь, что данные поставляют, а использовать не дают. У меня wmp11 даже языки как следует переключать не может (может вообще ничего не видеть), потому и держу несколько программ. А перед записью дисков для бытового плеера приходится вручную редактировать файлы. Удалять там или перемещать (менять порядок -- вот ведь глупость) дорожки и титры. Ну, с бытовыми понятно, они даже аш264 не читают, хотя микросхемы давно выпущены.
Студенты не испытывают проблем с трудоустройством, потому что никому не нужны те, кто пишет хорошо, но долго, главное -- дёшево и внушительно, чтоб очки дальше по инстанциям можно было втирать, передавая документацию с картинками, типа сделанных в RR. В самом деле, ты работаешь всю жизнь, выбился в начальники, а тут перед тобой сидит тот, которому все твои задачи смешны. Думаете, мне дали поработать на RR UML в Гаранте (генерились паскаль и с++ для винды и юниксов)? Для этого есть молодёжь. А для старых программистов догадайтесь что. Поддержка старого кода. Ведь молодые ни бум-бум в устаревших языках, типа Си, да в здоровенных программах, написанных ещё под win16, когда приходилось организовывать всё, что сейчас на себя берёт операционка, в худшем случае библиотеки, которые к этому старому коду не прицепишь.
Мне вот дали недавно задачу. Вроде как программисту, однако на меня выходят совсем в других случаях. Программа управления предприятием. Типа, прогноз и подсказки для руководителя, автопилот. Сказали, что есть литература, американская. Но там ни одной формулы! Непонятно, за что экономисты нобелевские получают. Или американцы держат формулы в секрете? Судя по кризису, не похоже. Единственное знакомое, что мне пришло в голову -- АСУ ТП, а значит ТАУ (теория автоматического управления). Ну, автоматически всякие программки, типа экологических, когда показывают предполагаемую динамику заражения местности. Но как-то странно, что никто не догадался, видимо, диффуры туда не пришьёшь. А в этих новомодных матрицах у меня идей пока нет. Опять же, за это не заплатят. За решение этой задачки, имею в виду.

Profile

wizzard: (Default)
wizzard

January 2019

S M T W T F S
  12 345
6789101112
1314 1516171819
202122 23242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 12th, 2025 06:24 am
Powered by Dreamwidth Studios