2016-04-04 4 views
-5

Оператор switch представлен на всех основных языках сегодня (Javascript, Java, PHP, C#, C++, C), но на каком языке это утверждение впервые появилось?Кто изобрел инструкцию switch?

+0

[Вопросы истории программирования являются вне темы на переполнение стека] (https://meta.stackoverflow.com/questions/255424/how-should-the-history- tag-be-disambiguated # comment24818_255425) –

+4

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что речь идет об истории программирования, а не о программировании – Dijkgraaf

ответ

2

Lisp имеет cond, который Wikipedia's source мест в 1956-1958 годах.

Я придумал условные выражения в связи с набором рутинных операций по шахматам, которые я написал в FORTRAN для IBM 704 в M.I.T. в течение 1957-58 ... Документ, определяющий условные выражения и предлагающий их использование в Алголе, был отправлен в Связь ACM, но был произвольно понижен до письма редактору, поскольку он был очень коротким.

- John McCarthy: Lisp Prehistory - Summer 1956 through Summer 1958

+0

Справа, забыли про ветку Лиспа! Раньше BCPL и ALGOL (хотя позже, чем не совсем-таки-переключатель FORTRAN). +1 – Amadan

+0

Я * думаю * статья будет в выпуске CACM том 2 (1959), но их он-лайн архив, похоже, не включает письма в редакцию. Если кто-либо, кто имеет доступ к старым изданиям, может проверить это или, в идеале, предоставить ссылку на оригинал, который будет большим. – tripleee

+0

В тексте в Википедии утверждается, что это событие, когда «cond» было изобретено, но беглый прочтение статьи Lisp Prehistory, похоже, не подтверждает или не опровергает это утверждение. Википедия ссылается на «более общую структуру * cond *» вместо «if» - 'then' -' else', поэтому я основал этот ответ. – tripleee

0

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

1

На это нельзя ответить, поскольку это была эволюция концепции. C (самый старый в вашем списке) был выделен из B (также был switch), который развился из BCPL (имело switchon заявление). BCPL пришел из CPL, которого (AFAIK) этого не сделал. С другой стороны каньона Pascal-vs-C, ALGOL (имело case заявление в ALGOL68), эволюционировало от FORTRAN (имело рудиментарный предшественник в вычисленном заявлении GO TO). Вычисленный GO TO очень низкоуровневый и легко реализуется в сборке.

+0

Я спрашиваю про синтаксис, который используется на всех популярных языках. Я тоже верю, что это было B. – Tom

Смежные вопросы