LINUX.ORG.RU

Лекция Юрга Гуткнехта «Проект Оберон: 30 лет» в Москве

 , , gutknecht,


3

5

24 октября в Университете Дмитрия Пожарского пройдёт лекция швейцарского профессора Юрга Гуткнехта, соавтора языков Pascal и Oberon, коллеги легендарного Никлауса Вирта.

В программе — совместная лекция и дискуссия «Проект Оберон: 30 лет» Лекторы: Президент Швейцарского общества информатики, профессор ETH Zurich, д-р Юрг Гуткнехт и Ведущий научный сотрудник отдела теоретической физики ИЯИ РАН, координатор проекта «Информатика-21», д.ф.-м.н. Фёдор Васильевич Ткачёв.

17:30, ЦЭМИ РАН (Нахимовский проспект, 47), аудитория 520. Регистрация и пропуск не требуется.

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 1)
Ответ на: комментарий от Napilnik

Чем меньше таких динамических либ, тем лучше.

Для хакеров.

Deleted
()
Ответ на: комментарий от anonymous

как то так и это выглядит ужасно, for(;P(«\n»).R-;P(«\ »))for(e=3DC;e-;P(«_ »+(*u++/8)%2))P(«| »+ (*u/4)%2); выглядит немного получше чем паскальный набор букв. больше похоже на javascript пропущенный через какую то утилиту для урезания размера/обфускации. никто в здравом уме такое на C писать не будет а если уж тебе так хочется то извини, язык создавался с целью использования адекватными людьми а не для того что бы какой то псих не смог обфусцировать код.

iluha16
()
Ответ на: комментарий от iluha16

язык создавался с целью использования адекватными людьми

как только на нем начинают писать адекватно он превращается в Паскаль.

anonymous
()
Ответ на: комментарий от iluha16

«In 1969, AT&T had just terminated their work with the GE/Honeywell/AT&T Multics project. Brian and I had started work with an early release of Pascal from Professor Niklaus Wirth's ETH labs in Switzerland and we were impressed with its elegant simplicity and power. Dennis had just finished reading 'Bored of the Rings', a National Lampoon parody of the Tolkien's 'Lord of the Rings' trilogy. As a lark, we decided to do parodies of the Multics environment and Pascal. Dennis and I were responsible for the operating environment. We looked at Multics and designed the new OS to be as complex and cryptic as possible to maximize casual users' frustration levels, calling it Unix as a parody of Multics, as well as other more risque allusions. We sold the terse command language to novitiates by telling them that it saved them typing.

Then Dennis and Brian worked on a warped version of Pascal, called 'A'. 'A' looked a lot like Pascal, but elevated the notion of the direct memory address (which Wirth had banished) to the central concept of the language. This was Dennis's contribution, and he in fact coined the term"pointer» as an innocuous sounding name for a truly malevolent construct.

Brian must be credited with the idea of having absolutely no standard I/O specification: this ensured that at least 50% of the typical commercial program would have to be re-coded when changing hardware platforms. Brian was also responsible for pitching this lack of I/O as a feature: it allowed us to describe the language as «truly portable».

When we found others were actually creating real programs with A, we removed compulsory type-checking on function arguments. Later, we added a notion we called «casting»: this allowed the programmer to treat an integer as though it were a 50kb user-defined structure. When we found that some programmers were simply not using pointers, we eliminated the ability to pass structures to functions, enforcing their use in even the Simplest applications. We sold this, and many other features, as enhancements to the efficiency of the language. In this way, our prank evolved into B, BCPL, and finally C. We stopped when we got a clean compile on the following syntax:

for (;P(«\n»),R-;P(«|»))for(e=3DC;e-;P(«_»+(*u++/8)%2))P(«|»+(*u/4)%2);

At one time, we joked about selling this to the Soviets to set their computer science progress back 20 or more years.

Unfortunately, AT&T and other US corporations actually began using Unix and C. We decided we'd better keep mum, assuming it was just a passing phase. In fact, it's taken US companies over 20 years to develop enough expertise to generate useful applications using this 1960's technological parody. We are impressed with the tenacity of the general Unix and C programmer. In fact, Brian, Dennis and I have never ourselves attempted to write a commercial application in this environment.

We feel really guilty about the chaos, confusion and truly awesome programming projects that have resulted from our silly prank so long ago."

Ken Thompson

anonymous
()
Ответ на: комментарий от anonymous

Я всего лишь применил утверждение «Фигурные скобки ничем не лучше бегин эндов» индуктивно. Если односимвольные ключевики ничем не лучше многосимвольных, то можно последовательно заменить все односимвольные на многосимвольные, и исходный вариант по-прежнему будет ничем не лучше производного.

Ну а лучше или не лучше - каждый пусть сам решает.

Deleted
()
Ответ на: комментарий от anonymous

В сях много тупого синтаксиса, тот же синтаксис объявления типов — полный отстой.

Но делать глубокомысленные выводы из специально обфусцированного примера из книжки (да еще и не являющегося современным Си) - это сильно.

Это, как я понимаю, понятнее? for(;P(«\n»).R-;P(«\ »))for(e=3DC;e-;P(«_ »+(*u++/8)%2))P(«| »+ (*u/4)%2);

Только ты забыл упомянуть, что это — специальный пример, никто не заставляет писать таким образлм. А в моём примере на паскаль-подобную галиматью транслирован нормальный код, и писать иначе там просто нельзя.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

iluha16
()
Ответ на: комментарий от anonymous

спасибо поржал. откуда ты выдернул этот бред? дай ссылку.

iluha16
()
Ответ на: комментарий от Deleted

В сях много тупого синтаксиса, тот же синтаксис объявления типов — полный отстой.

лично мне нравиться. чем плох?

iluha16
()
Ответ на: комментарий от iluha16

Невозможностью тупого линейного разбора. Мне доводилось городить частичный парсинг кода и генерацию вспомогательной информации из него. И полностью корректный парсинг типов Си - это всегда боооль.

Deleted
()
Ответ на: комментарий от Deleted

Любую идею можно довести до абсурда... Примени свое утверждение индуктивно в обратную сторону и опять же получишь абру - кадабру вместо программы.

anonymous
()
Ответ на: комментарий от Deleted

никто не заставляет писать таким образлм

Таким образом не пишут только там, где за это бьют дубиной по голове.

А в моём примере на паскаль-подобную галиматью транслирован нормальный код, и писать иначе там просто нельзя.

Ты врешь, т.к. Паскаль выглядит не так...

anonymous
()
Ответ на: комментарий от anonymous

Не принципиально, правильно спроектированный код имеет блоки такого размера, что это не мешает.

Правильно спроектированный код и реальный код часто имеют крайне мало общего. Хотите возиться с языком для «ученых» — ваше право. А другие люди имеют право предпочитать инструменты, которые более помогают в практической деятельности.

Не так давно я как раз в своём ZeroNet-бложике писал на тему языков: https://www.zerogate.tk/1ysjnZzsz5YYXhTNBxELnY4ftz42QupMg/?Post:16

Но там я наверное недостаточно чётко выразил мысль, которую хотел выразить: единственно важная характеристика синтаксиса языка — насколько он способствует выявлению ошибок в коде.

Код в стиле ~!@#$%^&* нечитабелен, равно как нечитабелен и код в стиле begin begin begin begin begin. Во всем должен быть баланс. Многословность Паскаля можно было бы пустить на полезное дело, как это позже сделали в Ада. Но Паскаль не Ада, и в нём многословность просто сама по себе, без смысла.

Deleted
()
Ответ на: комментарий от anonymous

Ты врешь, т.к. Паскаль выглядит не так...

Учись читать. Я не вру, поскольку не утверждаю, что это паскаль.

Таким образом не пишут только там, где за это бьют дубиной по голове.

А вот теперь ты врёшь.

Deleted
()
Ответ на: комментарий от Deleted

А вот теперь ты врёшь.

Докажи.

Учись читать. Я не вру, поскольку не утверждаю, что это паскаль.

Доказываешь многословность Паскаля приводя пример на придуманном языке? Ты, безусловно, пытаешься ввести людей в заблуждение.

anonymous
()
Ответ на: комментарий от anonymous

Ни когда не нравились префиксные и постфиксные операции в C/C++.
Иногда использую += /«и это пожалуй все»/.
ИМХНО в многих случаях теряется читабельность кода

vladimirmir2016
()
Ответ на: комментарий от anonymous

Любую идею можно довести до абсурда... Примени свое утверждение индуктивно в обратную сторону и опять же получишь абру - кадабру вместо программы.

Легко проверить.

Код на Си и так близок к такому состоянию. Вот исходный фрагмент из сорцов линукса:

static int cpuhp_invoke_callback(unsigned int cpu, enum cpuhp_state state,
				 bool bringup, struct hlist_node *node,
				 struct hlist_node **lastp)
{
	struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
	struct cpuhp_step *step = cpuhp_get_step(state);
	int (*cbm)(unsigned int cpu, struct hlist_node *node);
	int (*cb)(unsigned int cpu);
	int ret, cnt;

	if (st->fail == state) {
		st->fail = CPUHP_INVALID;

		if (!(bringup ? step->startup.single : step->teardown.single))
			return 0;

		return -EAGAIN;
	}

Из ключевых слов здесь нужно заменить только static, if, return, struct и enum. Остальное - идентификаторы.

Deleted
()
Ответ на: комментарий от anonymous

Докажи.

Ты сделал утверждение, ты и доказывай.

Доказываешь многословность Паскаля приводя пример на придуманном языке? Ты, безусловно, пытаешься ввести людей в заблуждение.

Бери шире: я утверждаю излишнюю многословность всех* паскале-подобных языков, кроме Ады, в которой она была обоснована решаемыми задачами.

(*) известных мне.

Deleted
()
Ответ на: комментарий от vladimirmir2016

Весьма часто теряется, а пионеры, вроде илюхи, любят блеснуть чем-нибудь эдаким. Но в нормальных организациях, конечно, следят за кодестайл…

ПС Никогда не понимал спора по поводу begin end и {}. Совершенно ничего не значащая мелочь, ни на что не влияющая.

anonymous
()
Ответ на: комментарий от Deleted

Бери шире: я утверждаю излишнюю многословность всех* паскале-подобных языков

Ну тогда ты точно врешь, т.к. ни в модуле, ни в обероне вообще нет составного оператора.

anonymous
()
Ответ на: комментарий от anonymous

Ну тогда ты точно врешь, т.к. ни в модуле, ни в обероне вообще нет составного оператора.

От этого в них меньше синтаксического мусора?

Deleted
()

Еще не успел прочитать тред целиком, но вроде пока никто не упомянул Active Oberon — язык для разработки массивно-параллельных многонитиевых программ, созданные еще в ту эпоху, когда многоядерные процессоры в массовом сегменте были полной фантастикой.

Лично мне семейство оберонов запомнилось именно этим языком, а прочие Обероны прошли в основном как-то мимо.

Deleted
()
Ответ на: комментарий от anonymous

Не встречал ни одного редактора, который бы в конце блока автоматически добавлял комментарий.

Обычно:
if (1) {
...
...
}

А много читабельней:
if (1) {
...
...
} // if (1) {

vladimirmir2016
()
Ответ на: комментарий от pihter

> Математики уверяют что этот оператор не нужный, но «забывают» уточнить, что собирать в бутылке рабочую модель парусника не очень удобно, хотя и возможно

А вот это — лучший аргумент за goto, что я за последние лет 10 видел. Без иронии.

+1

Deleted
()
Ответ на: комментарий от Deleted

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

iluha16
()
Ответ на: комментарий от vladimirmir2016

Не встречал ни одного редактора, который бы в конце блока автоматически добавлял комментарий.

Потому что потом актуальность этих комментариев поддерживать - та еще задача. А компилятор их игнорирует.

Это должно быть фичей языка.

Deleted
()
Ответ на: комментарий от vladimirmir2016

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

iluha16
()
Ответ на: комментарий от spqr

2018 год. На лоре обсуждают goto и Pascal.

Ну это же здорово. Лучше, чем обсуждать code of conduct и геев. Старый-добрый ЛОР!

Deleted
()
Ответ на: комментарий от iluha16

Верю!
Но для меня гораздо привычней иметь наличие таких комментариев
В простых случаях они не нужны /у меня они правда всегда присутствуют/ ...

vladimirmir2016
()
Ответ на: комментарий от vladimirmir2016

Принципиальной сложности нет, но это будет такой вот странной фичей единственного редактора.

Deleted
()
Ответ на: комментарий от khrundel

Теперь, после объяснения относительной популярности паскаля, можно и объяснить, почему вся остальная группа в жопе. А причина этому, как тут уже намекали, это begin/end. При прочих равных язык, в котором вместо a+b пишут sum(a,b) обречён, оператор + слишком часто используемый и слишком очевидный, и функциональная запись сложения сложнее читается. Блочные границы аналогично, используются часто, имеют очевидных кандидатов сведи операторов, и, будучи записаны буквами, захламляют текст программы, не неся никакой информации. В этом плане даже всякие endif или fi лучше, там за буквенную запись хотя бы получаешь некий контроль парности скобок, а в паскалеподобных умудрились собрать худшие черты обоих подходов.

+1

Deleted
()
Ответ на: комментарий от Bobby_

Слышал мнение, что делфи (по сути паскаль), была самой лучшей средой разработки под Windows, с массой достоинств, в виде быстрой компиляции и очень быстрой работы самой ide.

Там и C++ Builder не был принципиально хуже.

Deleted
()
Ответ на: комментарий от pihter

Так а я о том же. Я про то писал, что линукс, де-факто, несвободен, ибо сообщество его уже не потянет.

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

Мы сейчас с тобой общаемся текстовыми сообщениями на форуме. Для этого достаточно компьютера уровня спектрума.

Не достаточно. Но мысль мне нравится.

Вспомните зачем это Столлман начинал — чтоб у нас наше ПО не отняли. А у нас отняли — мы и не заметили

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

У нас отняли не ПО, у нас отняли железо. Которое мы типа купили, и следовательно, оно в нашей собственности. Но делает оно не то, что мы хотим, а то, что они хотят. Так что по закону оно наше, а по факту - нет.

Получается, что Столлман проиграл, хоть формально и добился результатов.

Deleted
()
Ответ на: комментарий от Deleted

... быстрой компиляции и очень быстрой работы самой ide.

Там и C++ Builder не был принципиально хуже.

По указанным «принципам». Компилятор был жуткий тормоз и очень плохо оптимизировал (и по сравнению с другими с++ компиляторами и самим дельфи). Иде тоже был тормозным и с багами в подсветке синтаксиса. Хотя в те времена у всех были проблемы с «хорошо продуманным» синтаксисом с++ (и не только в те времена).

anonymous
()
Ответ на: комментарий от anonymous

Компилятор был жуткий тормоз и очень плохо оптимизировал (и по сравнению с другими с++ компиляторами и самим дельфи). Иде тоже был тормозным и с багами в подсветке синтаксиса. Хотя в те времена у всех были проблемы с «хорошо продуманным» синтаксисом с++ (и не только в те времена).

Я так понимаю, delphi был основным продуктом, а билдер пилился по остаточному принципу. Тем не менее, мне оба запомнились вполне позитивно.

и очень плохо оптимизировал (и по сравнению с другими с++ компиляторами и самим дельфи)

Насчёт оптимизации в сравнении с делфи удивляет. Разве они не один кодогенератор использовали?

Deleted
()
Ответ на: комментарий от khrundel

одни beginendы я бы ещё пережил. к примеру, в ruby они встречаются но я бы не сказал что ruby мне не понравился.

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

iluha16
()
Ответ на: комментарий от Deleted

... Разве они не один кодогенератор использовали?

Угадай, под что заточенный кодогенератор использвали.
СиБилдер нужен был, чтоб переманить часть студентов с промытыми с/с++ мозгами. Так сказать, ставка на будущее стильно-модно-молодежное. Но в суровом ынтырпрайзе победил с++ в виде жабы(скрипта).

anonymous
()
Ответ на: комментарий от WatchCat

Он прямо пишет во второй главе что новый язык должен был поддерживать _все_ особенности C. «Все» это значить все.

Где тут написано про то, что Страуструп решил оставить goto именно для поддержки древнего легаси? Про причину?

Тут так не написано. Ты это придумал.

Ты вертишься как уж на сковороде. Что угодно, лишь бы не признать собственную неправоту. Не по-мужски как-то.

Че там насчет моего обвинения что про РН Союз ты тоже все придумал? Молчим, вроде как ничего и не было? Нет, давай отвечай.

Че там насчет аргумента о том, что если технология старше тебя, то она устарела? Молоток, геометрия? Молчим?

Когда человеку разумными аргументами доказывают, что он был неправ, у него есть два путя: изменить свое старое неправильное мнение на новое правильное или понимая, что не прав «пытаться сохранить лицо», применяя все возможные полеместические хитрости и уловки, лишь бы публично не признать что его уличили в неправоте. Выбирай.

pihter ★★★★★
()
Ответ на: комментарий от iluha16

в паскале весь синтаксис какой то деревянный, урезанный, неудобный

Особенно паскалевский case по сравнению с сишным аналогом, такой урезанный, такой неудобный... А уж ansistring какой урезанный и неудобный...

Napilnik ★★★★★
()
Ответ на: комментарий от Deleted

Лучше, чем обсуждать code of conduct и геев. Старый-добрый ЛОР!

Ну так топик-то еще совсем свежий, погоди, и про геев поговорим, и про ватников и про Сталина — к восьмой странице танцульки только начинаются обычно! )

pihter ★★★★★
()
Ответ на: комментарий от pihter

про Сталина

если бы не Сталин все программы писались бы сейчас на обероне, только он был бы на немецком и назывался лоэнгрин

anonymous
()
Ответ на: комментарий от Deleted

Мы сейчас с тобой общаемся текстовыми сообщениями на форуме. Для этого достаточно компьютера уровня спектрума.

Не достаточно. Но мысль мне нравится.

Почему не достаточно? Текст набирать можно? Отображать можно? «сетевую карту» прикрутить можно?

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

Это да. Но теперь элементная база совсем не та, что была раньше. Теперь самому собрать компьютер — выходные. Купи атмегу8 (50 руб) припаяй к ней ps/2 разъем под клавиатуру, vga-разъем для монитора, uart-ethernet (400 руб), ну можно, для совсем шика, припаять еще пару метров оперативки и 64 метра флеша — все.

Уж этого-то добра для общения на ЛОРе хватит с головой. А за месяцок-другой можно для него компилятор Си написать и текстовый редактор и вот она — свобода.

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

Получается, что Столлман проиграл, хоть формально и добился результатов.

Столлман не проиграл. Просто это война не 50 лет, а на 500.

Я лично могу сгородить описанный мной компьютер, написать для него ассемблер, компилятор оного, текстовый редактор, файловую систему и тд. Потом прикрутить радио-приемо-передатчик простенький и организовать из таких сеть по городу. И мне вообще будет пофиг и на железо и на ПО. Мои задачи такой комп на 70% покроет. Остальное — лоск ненужный.

И я такой не один. На такое вообще любой любитель-электронщик-программист способен.

pihter ★★★★★
()
Ответ на: комментарий от anonymous

про Сталина

если бы не Сталин все программы писались бы сейчас на обероне, только он был бы на немецком и назывался лоэнгрин

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

А так я к роли данной личности отношусь с глубоким пониманием.

pihter ★★★★★
()
Ответ на: комментарий от anonymous

Угадай, под что заточенный кодогенератор использвали.

Значит кодогенератор был довольно нетехнологичный. Нормально написанному генератору должно быть пофиг, какой язык компилировать. на уровне семантики исполнителя между тогдашним C++ и Object Pascal разницы не было, или она была микроскопическая.

Но в суровом ынтырпрайзе победил с++ в виде жабы(скрипта).

Какую-то кашу пишешь.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.