Является ли использование сценариев оболочки для введения в алгоритмы хорошей идеей - PullRequest
2 голосов
/ 18 февраля 2011

В настоящее время я назвал изучение Unix / Shell Scripting и чтение книги CLR Algo самым важным для меня приоритетом. Я думал, смогу ли я решить вопросы алгоритмов, упомянутые в CLR, используя сценарии оболочки. Имейте в виду, я полный новичок в Unix / Shell Scripting.

Ответы [ 4 ]

11 голосов
/ 18 февраля 2011

Нет, это не так. Сценарии оболочки определенно не предназначены для написания алгоритмов. Вы должны использовать язык программирования общего назначения, такой как C, C ++, Java, Python или [вставьте ваш любимый язык общего назначения здесь].

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

Кроме того, большинство языков сценариев оболочки (прежде всего bash) слабо типизированы, что а.) Снижает производительность и б.) Усложняет процесс анализа вашей программы. Динамическая типизация подходит для алгоритмов, слабая типизация, не так много. Производительность будет ужасной, независимо от того.

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

2 голосов
/ 18 февраля 2011

Такие оболочки, как Bash, довольно мощные, но я думаю, вы обнаружите, что их ограниченная поддержка массивов, отсутствие поддержки хеш-таблиц и другие ограничения делают утомительным выполнение чего-то большего, чем самые простые алгоритмы. Python или Perl были бы намного лучшим общим языком сценариев.

(добавлено позже). Узнав, что в Bash 4 есть ассоциативные массивы, я хотел бы добавить, что можно реализовать некоторые алгоритмы с использованием сценариев оболочки. Это не было бы быстро, и не было бы элегантно, было бы чертовски утомительно и ограничено в применении; но если вы хотите, чтобы вас заставляли изучать тонкости оболочки, пока вы учитесь реализовывать алгоритмы, то есть чисто как умственное упражнение, это может быть полезно для вас.

0 голосов
/ 23 декабря 2011

Университеты обычно предпочитают один из следующих вариантов (не полный список, только услышанные):

  • C
  • C ++
  • Java
  • C #
  • Python
  • Matlab
  • Схема

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

  • Вы заинтересованы в программировании на Unix-Linux на системном уровне: C, C ++
  • Вы заинтересованы в том, чтобы быть инженером-программистом: Java,C # (возможно C ++)
  • Вы заинтересованы в веб-программировании: PHP (возможно, Python)
  • Вы заинтересованы в математическом / статистическом программировании, линейной алгебре и т. Д.: Matlab

и т.д..Сначала: определите свою цель программирования, затем найдите ее в Интернете, чтобы увидеть, что люди используют, а затем изучите ее

0 голосов
/ 19 февраля 2011

Совсем нет.Сценарии оболочки хороши, когда вы хотите, чтобы остановка в одну точку выполняла все действия, связанные с системой UNIX / Linux.Вы можете перейти на C / C ++, Python, Java.

...