Дихотомия остерхоутса - Ousterhouts dichotomy
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Дихотомия Остерхаута является специалист в области информатики Джон Остерхаут категоризация[1] который языки программирования высокого уровня делятся на две группы, каждая из которых имеет различные свойства и способы использования: системное программирование языки и языки сценариев - сравнивать программирование в большом и программирование в малом. Это различие лежит в основе конструкции его языка. Tcl.
Языки системного программирования (или языки приложений) обычно имеют следующие свойства:
- Они есть набран статически
- Они поддерживают создание сложных структуры данных
- Программы в них собраны в Машинный код
- Программы в них предназначены для работы в значительной степени независимо от других программ.
Языки системного программирования обычно используются для компонентов и приложений с большим объемом внутренней функциональности, таких как операционные системы, серверы баз данных и веб-браузеры. Эти приложения обычно используют сложные алгоритмы и структуры данных и требуют высокой производительности. Прототипные примеры языков системного программирования включают: C и Модула-2.
Напротив, языки сценариев (или склеить языки ) имеют следующие свойства:
- Они есть набирается динамически
- В них мало или совсем нет сложных структур данных
- Программы в них (скрипты) находятся интерпретированный
Языки сценариев обычно используются для приложений, в которых большая часть функциональных возможностей обеспечивается другими программами (часто реализованными на языках системного программирования); скрипты используются для клей вместе с другими программами или добавить дополнительные уровни функциональности поверх существующих программ. Оустерхаут утверждает, что скрипты обычно короткие и часто пишутся менее опытными программистами, поэтому эффективность выполнения менее важна, чем простота и легкость взаимодействия с другими программами. Общие приложения для написания сценариев включают создание веб-страниц, создание отчетов, графический пользовательский интерфейс и системное администрирование. Прототипные примеры языков сценариев включают AppleScript, Оболочка C, ДОС пакетные файлы, и Tcl.
История
Дихотомия была полностью изложена в Остерхаут (1998) , хотя Оустерхаут проводил это различие, по крайней мере, с момента разработки Tcl (1988), и публично заявлял об этом в разное время. Ранний эпизод был "Война за Tcl "конца сентября - октября 1994 г., где Ричард Столмен опубликовал статью с критикой Tcl, озаглавленную «Почему не следует использовать Tcl»,[2] На что Оустерхаут ответил, сформулировав свою дихотомию:[3]
Я думаю, что возражения Столлмана против Tcl могут в значительной степени проистекать из одного аспекта дизайна Tcl, который он либо не понимает, либо с которым не согласен. Это предложение о том, что вы должны использовать * два * языка для большой программной системы: один, такой как C или C ++, для управления сложными внутренними структурами данных, где производительность является ключевым моментом, а другой, такой как Tcl, для написания небольших скрипты, которые связывают части C и используются для расширений.
Критика
Многие считают эту дихотомию весьма произвольной и называют ее Заблуждение Остерхаута или же Ложная дихотомия Остерхаута.[4] В то время как статическая или динамическая типизация, сложность структуры данных и независимость по сравнению с автономной можно назвать несвязанными функциями, обычная критика дихотомии Оустерхаута заключается в ее различии между компиляцией и интерпретацией. Ни семантика, ни синтаксис существенно не зависят от того, компилируется ли реализация языка в машинный язык, интерпретируется, токенизируется или компилируется байтом в начале каждого прогона, или любое их сочетание. Кроме того, практически ни один широко используемый язык не интерпретируется без компилятора; это делает компиляцию или интерпретацию сомнительным параметром в таксономии языков программирования.
Рекомендации
- ^ Остерхаут, Джон (март 1998 г.). «Сценарии: программирование на высшем уровне для 21 века» (PDF). Компьютерный журнал IEEE. Получено 27 марта, 2020.
- ^ Столмен, Ричард (1994-09-23). "Почему не следует использовать Tcl". Группа новостей: comp.lang.tcl. Usenet: [email protected]. Получено 2015-09-13.
- ^ Остерхаут, Джон (1994-09-26). "Re: Почему не стоит использовать Tcl". Группа новостей: comp.lang.tcl. Usenet: [email protected]. Получено 2015-09-13.
- ^ Стюарт Хэллоуэй. Дихотомия Остерхаута не является.
- Статья основана на материалах, взятых из Бесплатный онлайн-словарь по вычислительной технике до 1 ноября 2008 г. и зарегистрированы в соответствии с условиями «перелицензирования» GFDL, версия 1.3 или новее.
дальнейшее чтение
- Кумар, Дипак (сентябрь 2010 г.). «Размышления: языковые войны и ложные дихотомии». ACM Inroads. 1 (3).
- Гровер, Энди. «Станьте лучшим программистом, преодолев дихотомию Оустерхаута». Мост с открытым исходным кодом.