У меня есть проект библиотеки, который требует совместимости C с другими языками и разумной производительности, но должен быть документирован очень четко, по-латентному программированию и чья документация может выиграть от функционального подхода, такого как Haskell , или даже Idris '.Грамотное программирование на нескольких языках
Я заинтересован в создании этой библиотеки в качестве грамотной программы, сначала написав документацию и рабочий код прототипа Idris, а затем написав код C, который тесно параллелен коду Idris для решения любых проблем с производительностью и может быть легко связан с другими языки.
Какой грамотный инструмент программирования я хочу?
NuWeb предназначен для многоязыковой грамотного программирования, но их использование знака @, или действительно любого экранирующего символа, является проблематичным для функциональных языков, как Идрис, Haskell и т.д.
Идрис wantsliterate programming tool, к которому Я мог бы внести свой вклад. Мне нравится их предпочтительный подход только с использованием .tex
файлов, разделенных \begin{code} .. \end{code}
блоков.
Идрис, Хаскелл и т. Д. Не нуждаются в путанице, как это делает C, так что это добавляет сложности, и я предпочел бы, чтобы какой-либо инструмент, который я использую здесь, торчит.
Подход, который сводит к минимуму набор инструментов для потребителей библиотеки может быть извлечь C и Идрис код, используя простой скрипт на Perl, как cat_latex_env
:
#!/usr/bin/perl
use strict;
use warnings;
sub usage { die "Usage: cat_latex_env enviroment_name [filename]\n"; }
usage if ($#ARGV < 0);
my $env = shift;
my $begin = quotemeta "\\begin{$env}";
my $end = quotemeta "\\end{$env}";
while (<>) {
if (/$begin/../$end/) {
next if /$begin/ || /$end/;
print;
}
}
В этот момент Идрис должен компилироваться. И я мог бы вставлять инструкции клубка, необходимые грамотному программному инструменту для C, например CWEB или NuWeb.
Мысли?
Я бы не создал ответ, так как мой вариант предвзятый. Лично я против любых форм грамотного программирования, он очень усложняет обслуживание и отладку программы. Я предложил бы вам взглянуть в другую сторону, используя инструменты документа внутри программы. например, doxygen для C и http://en.wikipedia.org/wiki/Haddock_(software) для Haskell и т. д. – qunying
@ Cœur Этот вопрос кажется вне темы, поскольку он просит рекомендации по программному обеспечению. Ваше правление просто исправляло одну орфографическую ошибку. Вы бы лучше воспользовались Stack Overflow, голосуя, чтобы закрыть этот вопрос? – AdrianHHH
@ Cœur, чтобы добавить к тому, что сказал AdrianHHH: проблема в основном состоит в том, что этот вопрос был затронут на первой странице без существенного улучшения (я не считаю, что одна коррекция правописания значительна), и что теперь этот вопрос OT получает новое внимание из-за он снова находится на первой странице. Я видел, как вы редактируете вопросы с незначительными изменениями, как это только для закрытия не намного позже; пожалуйста, учтите, что при редактировании учитывается вопрос, и подумайте, не будет ли более предпочтительным вариант голосования. – Adriaan