Существует ли программа, которая справка может понять другую программу?

Я должен зарегистрировать программное обеспечение, я в настоящее время продолжаю работать. Программное обеспечение состоит из нескольких языков программирования и сценариев, которые получили меня взгляды. Если новые разработчики приезжают и должны зафиксировать что-то, они могли бы знать Java, но возможно не колотить сценарии. Было бы хорошо, если бы была программа, которая помогла бы понять что

for f in "$@" ; do

средства. Я думал о чем-то, что создает статическую страницу HTML с кодом плюс подсветка синтаксиса и если бы Вы нависаете над чем-то (как "для"), это отобразило бы всплывающее окно с объяснением:

for запускает цикл, который выполняет итерации по всем значениям, которые следуют in. В цикле можно получить доступ к каждому значению через переменную $f. Тело цикла между do и done

Чему-то нравится, это уже существует?

[РЕДАКТИРОВАНИЕ] Это - просто пример. Вы получите другую справку для f, in, "$@", ; и do, т.е. каждый элемент строки должен быть объяснен. Неизвестные элементы (как названия команды) должны связаться с Google. Таким образом, можно понять то, что это делает даже при пропавших без вести некоторой детали.

[EDIT2] я знаю, что Вы не можете записать программу, которая понимает то, что делает другая программа. То, что я ищу, является простым инструментом, который сделает "расширенную подсветку синтаксиса" в том смысле, что она окрасит выражение и даст короткое объяснение, что это означает (плюс, возможно, ссылка на некоторую всестороннюю ссылку).

Это предназначено для кого-то, кто знает, как программировать, но возможно не видел некоторую неясную конструкцию прежде. Сказать

echo "Error" 1>&2

Каждый программист удара знает то, что это означает, но Java-разработчик мог бы быть озадачен 1>&2 несмотря на то, что они могут предположить это echo == System.out.println. Простые "Перенаправления stdout к stderr" разрешат вещи и дадут тот момент "АГА!" который позволяет им оставаться в их текущем ходе мыслей.

16
задан Billy ONeal 8 June 2011 в 01:45
поделиться

6 ответов

ИМО, было бы проще и эффективнее просто собирать ссылки на хорошие языковые ссылки и руководства на странице Wiki.

Для всех основных языков такие источники существуют и регулярно обновляются. Если вы пытаетесь создать свою собственную ссылку, вам также необходимо поддерживать ее. Честно говоря, синтаксис bash не будет меняться очень часто, но другие языки развиваются быстрее, так что это будет обузой.

1
ответ дан 30 November 2019 в 23:32
поделиться

Подобный инструмент можно было бы создать с использованием ANTLR , то есть преобразовать код в абстрактное синтаксическое дерево с использованием грамматики ANTLR для этого языка и написать генератор HTML, который создал аннотированный код.

Похоже, это полезный инструмент для изучения языка или изучения исходного кода проектов, которые вы не поддерживаете, но подходит ли он для документации?

Почему важно помогать программистам, использующим другие языки, понимать код на этом уровне детализации реализации? Любой, кто поддерживает реализацию на этом уровне, очевидно, должен будет знать язык и, вероятно, будет иметь IDE для выполнения большей части этого.

Тем не менее, я бы определенно рассмотрел такой инструмент как учебное пособие.

3
ответ дан 30 November 2019 в 23:32
поделиться

Это очень непростая вещь. Прежде всего по определению можно доказать, что программы, которая «поймет» любую программу, не существует. Однако вы все равно можете использовать существующую документацию. Возможно, вам помогут такие инструменты, как Doxygen. Вам нужно будет задокументировать свой код с помощью комментариев, и документация будет сгенерирована на их основе.

0
ответ дан 30 November 2019 в 23:32
поделиться

Язык нельзя объяснить только с помощью его синтаксиса. Среда выполнения играет большую роль вместе с основной философией языка и библиотек.

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

Продолжая пример с bash, вы не сможете глубоко понять bash, если ничего не знаете о процессах и управлении заданиями, переменных среды, большом списке команд unix (tr, sort, cut, paste, sed, awk, find, .. .) и многие другие функции, отсутствующие в синтаксисе.

0
ответ дан 30 November 2019 в 23:32
поделиться

Если созданный инструмент

for запускает цикл, который выполняет итерацию по всем последующим значениям. В цикле вы можете получить доступ к каждому значению через переменную $ f. Тело цикла между do и done

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

0
ответ дан 30 November 2019 в 23:32
поделиться

Если подумать, это не очень полезно иметь инструмент, объясняющий синтаксис. Разработчики могли просто использовать Google по ключевым словам вместо просмотра веб-сайта аналогично http://www.codeweblog.com/source/ .

Я считаю, что хорошие комментарии будут намного полезнее, плюс есть инструменты для извлечения документации с помощью комментариев (например, HappyDoc делает это для Python).

0
ответ дан 30 November 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: