Comments 8
Как было сказано
let
объявляет переменные - при этом инициализирующие значения обязательны, что не всегда удобно
Правило хорошего тона в C/С++ - инициализировать всегда. А вот синтаксис для инициализации нескольких разных переменных удобен, было бы неплохо иметь возможность написать auto i, ch = 0, 'a';
Самое важное при собеседовании на Go - знать, кто его изобрёл.
небольшое дополнение про историю - первым языком высокого уровня вероятно таки был Plankalkul (Zuse 1945-46), интересно что история Algol 60 тоже слегка связана с Германией, работы над языком там начали Samelson, Bauer (Munich), Bottenbruch (Darmstadt), Rutishauser (Zurich) примерно в 1957, проект получил название Algol 58, т.к. был представлен на конференции в Цюрихе в 1958, конечно германские представители были знакомы с работами Zuse, в US для этого языка сначала использовали другое название IAL (International Algebraic Language), быстро добавили операторы I/O и на этой основе сделали JOVIAL, который стали использовать при разработке систем реального времени следующие 20-30 лет (до появления ADA)
Спасибо, но я не очень понимаю в каком виде Plankalkul существовал. Дизайн языка якобы был написан но не опубликован (?) Описание Z4 достаточно туманно чтобы понять можно ли было на ней создать компилятор, но похоже что нет. Языки без реализации трудно категоризировать - ну вот как с самим CPL ситуация - он вроде был, а вроде его и нет.
Хотя сам язык действительно очень любопытный, особенно его упомянутая двухмерная структура изначальная.
Допускаю что и другие языки могут претендовать на роль первого, т.к. некоторые языки уже существовали до фортрана - вопрос во многом в том как определить их "высокоуровневость".
Спасибо за историческую справку по Algol - на этот счет я не особо был в курсе.
Heinz Rutishauser (один из создателей Algol 58/60) был учеником Zuse, в 1952 он опубликовал важную работу типа "Automatische Rechenplanfertigung ..." в которой впервые обсуждал теорию компиляторов, до этого примерно в 1949-50 Zuse начал вести семинар в Мюнхене по своим работам, в том числе по Plankalkul, на котором начали обсуждение компиляторов, кое-какие важные идеи, типа использование стека и пр. возникли в то время, Siemens поддерживала эти работы
например https://github.com/SergeGris/BCPL-compiler - я взял отсюда, он легко компилируется под Linux / FreeBSD.
Очень приятно, что мой крайне старый репозиторий нашли и он оказался кому-то полезен :)
Хочу, на всякий случай, обратить внимание, что данный компилятор мной был взят отсюда: https://www.nordier.com/
А конкретно по этой ссылке можно скачать архив исходников компилятора, на котором базируется мой репозиторий: https://www.nordier.com/software/distfiles/obcpl-0.9.8.tar.xz
Автор проделал большую работу над тем, чтобы портировать компилятор 1980-х годов на современные Linux и FreeBSD, стоит отдать ему должное.
Занятно, насколько земля круглая :) Да, всё верно, ссылка на сайт Роберта Нордье у Вас упомянута. Позже я полазил и по его сайту, но Ваш действительно в гугле выпал первым когда я искал - ну и вроде это более-менее "топовая" реализация. Там нашлись нюансы с которыми ещё хочу поразбираться на досуге (flush потока например и некоторые сообщения об ошибках) - но в целом очень добротная штука!
Язык BCPL из которого получился C