Выбор языка программирования в книге по алгоритмам? [закрытый]

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

ServiceReference1.EQUsers equsr = user.EQAuthenticateUser("admin", "");

7
задан Community 23 May 2017 в 10:33
поделиться

9 ответов

Хорошая книга по алгоритмам должна быть записана в a-CLR psueod-кода...

По моему опыту, большинство книг, которые входят в определенный для языка examplse, заканчивает тем, что походило больше на студенческий учебник, чем подобный серьезная ссылка или изучило книги. Кроме того, большинство языков является довольно неуклюжим при контакте с наборами (особенно C++ и Java, даже с дженериками). Между всеми подробностями слишком много потеряно. Вы также сразу устраняете много своей потенциальной аудитории.

Единственное преимущество для языка, который определенные книги - то, что, если Вы писали учебник, издатель мог бы присоединить CD и добавить 50$ к MSRP.

Для меня легче понять алгоритм из (читаемого) псевдокода. Если я не могу выяснить, как реализовать его на моем языке с моими собственными наборами, я в беде так или иначе.

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

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

13
ответ дан 6 December 2019 в 05:56
поделиться

Существует огромное преимущество в рендеринге Knuth алгоритмов на языке уровня ассемблера. Это вынуждает читателя тщательно рассмотреть точно, что продолжается в кремнии, когда мы кодируем алгоритмы на некотором высокоуровневом языке. Специально для системных программистов этот вид понимания не может быть получен никакой другой путь.

Новый MMIX Knuth идеален: считайте это псевдокодом уровня ассемблера.

Моему идеальному учебнику записали бы алгоритмы в псевдокоде и MMIX, так, чтобы мы видели алгоритм и в его симпатичных и в окровавлено-сложных формах. Псевдокод должен быть предпочтен "реальным языкам", потому что он отступает бессмысленный, "необходимо было использовать этот язык не тот язык" сражения. На данном этапе для псевдокода не нужна никакая защита - лучшие существующие учебники алгоритмов используют или псевдокод или в случае Knuth своего рода псевдокод блока.

2
ответ дан 6 December 2019 в 05:56
поделиться

Я избежал бы чего-либо, что абстрагирует базовую 'механику' какого-то конкретного алгоритма

2
ответ дан 6 December 2019 в 05:56
поделиться

Используйте реальный язык программирования - никогда psuedo один. Читатели очень с подозрением относятся к коду psuedo, читателям как реальные языки программирования. Прерывание с psuedo языками - то, что можно определить понятия кода, которые читатель не может реализовать на их предпочтительном языке

Реальный язык программирования имеет много преимуществ:

1) можно протестировать код, надо надеяться, доказав корректный код!

2) можно экспортировать тот код в опубликованный формат для вставки в книге, удостоверившись, что кто-либо после кода посмотрел бы на фактический исполняемый код.

3) Вы не должны были бы защищать Вас код psuedo.

Выбор языка obvously субъективен, но я думаю, что почти любой современный язык мог использоваться, но я рекомендую тот, который имеет 'наименьшее количество издержек' с точки зрения быстрого понимания. И предпочтительно тот, что читатель может получить компилятор/интерпретатор. Если требуется использовать C, то, возможно, необходимо проверить D. Улучшенный C.

Например, Ruby имеет этот род, если Вы сохраняете Вас кодом 'простой', Java не (слишком много требуемых вспомогательных библиотек), в более раннее время Паскаль был бы кандидатом.

BTW: Я не использую Ruby теперь, как я в настоящее время использую Smalltalk & REBOL, но я не использовал бы ни один из тех языков в книге. Ваша книга перешла бы прямо к мусорному ведру остатка!

10
ответ дан 6 December 2019 в 05:56
поделиться

Выбор не будет способным понравиться всем.

Robert Sedgewick записал свои "Алгоритмы в..." книгах на нескольких языках. Я имел версию C для курса и купил версию C++, когда я начал работать с C++ на работе.

Вы не можете выйти из функций языка (даже псевдо функции языка).

Чтобы попытаться понравиться как можно большему количеству людей, Вы могли выбрать два языка, сказать одно функциональное и одно нет. Это могло помочь проиллюстрировать мотивации в выборе алгоритма.

2
ответ дан 6 December 2019 в 05:56
поделиться

C стиль часто используется, потому что много языков используют очень похожий стиль, таким образом, большинство программистов понимает это без объяснения. Далее, примеры могут быть выполнены на любой машине с компилятором C - который является почти каждой машиной.

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

Они часто выражаются на языке, который имеет необходимые функции. Java, C#, Erlang, Ada, и т.д. - самые хорошие программисты схватят то, что продолжает просто немного объяснения.

Но C является очень почти универсальной основой - Вы действительно не можете пойти не так, как надо при принятии стиля C для примеров.

- Adam

1
ответ дан 6 December 2019 в 05:56
поделиться

Я не использовал бы определенного языка. Используйте псевдоязык, который будет ясен большинству любой, кто сделал немного программирования. Обычно эти книги используют что-то близко к стилю C, но это не правило. Я знаю, что Вы упоминаете, что не хотите использовать псевдо код, но это позволит Вам достигать более широкой аудитории.

1
ответ дан 6 December 2019 в 05:56
поделиться

Я использовал бы что-то, что позволяет Вам выразить точно идею позади алгоритма.

Haskell довольно аккуратен, но я думаю, что с алгоритмами, которые работают с состоянием, оно может стоять на пути, и Вы были бы более заняты языком, чем с алгоритмом.

Я не использовал бы C или его потомков (C++, C#, Java...), потому что они будут стоять на пути, когда Ваши алгоритмы будут более "функциональными" по своей природе. Снова, Вы были бы более заняты языком, чем с алгоритмом. Я чувствовал бы себя очень неловко, если бы я должен был работать без функций высшего порядка.

Так, в основном я использовал бы язык мультипарадигмы, что Вы довольны, и относительно которого Вы уверены, что можно выразить алгоритмы, не погружаясь в специфические особенности языка.

Мой личный выбор был бы чем-то как язык Common LISP, но возможно Python или Scala осуществимы, также.

0
ответ дан 6 December 2019 в 05:56
поделиться

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

0
ответ дан 6 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

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