LINUX.ORG.RU

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

 , , gutknecht,


3

5

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

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

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

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



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

где обещанная оптимизация?

В исходниках, в си такой код многословнее. Ты ещё не закапывался в ворохе написанного кода. Когда такое несколько раз случится, может быть задумаешься над тем, как это написать лучше, но синтаксис не позволяет. Если тебе такая оптимизация не нужна, то можешь сразу в машинных кодах писать, под каждую платформу.

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

такая оптимизация мне не нужна. сущность всего паскаля в том что бы ограничить возможность выразить свою мысль какими то костыльными способами. как будто для дураков создан (ну для обучения же вирт сам вроде говорил - вот некоторые на нём обучились зачем то а теперь их мозг зохавало это гамно и писать на нормальном ЯП они уже не могут, путаются).

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

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

Проблема в том, что ты в принципе не способен на выражение мыслей.

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

такая оптимизация мне не нужна.

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

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

Наличие дополнительной фичи ограничивает твою мысль:))))) Больше вопросов не имею.

а теперь их мозг зохавало это гамно и писать на нормальном ЯП они уже не могут, путаются).

Ну так когда напишете на С/С++ нормальные приложения для линукса? Народ уже десятки лет ждёт.

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

Уж этого-то добра для общения на ЛОРе хватит с головой.

Не хватит: жаваскриптный говнокод для ввода капчи не потянет.

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

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

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

Ну так когда напишете на С/С++ нормальные приложения для линукса? Народ уже десятки лет ждёт.

Если не секрет напиши пожалуста какое ПО написанное на паскале ты используешь вместо так и ненаписанных нормальных C/C++ приложений. Очень хочется посмотреть.

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

какой дополнительной фичи?

У вас такого няшного case нет, смирись с этим. И да, использованию if then else оно не мешает.

вот простой пример: почему в паскале цикл может только исключительно инкрементировать или декрементировать переменную??? что это за бред вобще? как будто все циклы можно свести исключительно к этим двум действиям.

Ты описал цикл for, а есть ещё 2 стандартных http://progmatem.ru/pascal/while-and-repeat.html Если тебе мало трёх стандартных циклов, сделай на goto нестандатный. Ты не освоил то, что критикуешь.

гавно а не языка одним словом.

Говно, это твои знания о языке и умения его применять. Пока не начнёшь писать на нём реально полезные программы/демки, так и будешь диванным экспертом. В учебниках многого нет, а преподы любят учить как выводить программой выхлопы формул и графики функций. Они бы ещё половину физкультуры этому учили.

Если не секрет напиши пожалуста какое ПО написанное на паскале ты используешь вместо так и ненаписанных нормальных C/C++ приложений. Очень хочется посмотреть.

Редактор вместо sed, а также выключальник, аналог кучи виндовых гуёвых программ выключающих ПК, но с возможностью самому вписать в окошко используемую команду, потому что на одной системе хорошо работает одна команда, на другой - другая, необходима возможность редактирования. Заменитель седа понадобился при адаптации src.rpm для своего линукса. Как оказалось, при таком редактировании файлов никакие регулярные выражения нафиг не нужны, а значит не нужно париться с перегруженным синтаксисом.

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

У вас такого няшного case нет

да он нам и не нужен, других более мощных конструкций хватает.

Если тебе мало трёх стандартных циклов

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

Говно, это твои знания о языке и умения его применять.

этот язык невозможно применять.

Пока не начнёшь писать на нём реально полезные программы/демки

что такое «демки»? чуствую что какая то фигня, от этого слова прямо таки пахнуло говном паскалем.

Редактор вместо sed, а также выключальник, аналог кучи виндовых гуёвых программ выключающих ПК

очень богатый набор. кроме этой фигни я так понимаю больше никакого ПО на компе не держишь или есть ещё что то?

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

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

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

почему в паскале цикл может только исключительно инкрементировать или декрементировать переменную

Если ты о for, то это цикл с фиксированным числом повторений, в отличие от Сишного for-а, а итератор в нем, в общем-то, нужен только для работы с массивом или строкой.

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

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

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

да он нам и не нужен, других более мощных конструкций хватает.

Типа хакерства на ровном месте с указателями и побитовыми сдвигами, которое вообще-то платформозависимо, но не беда, специальные тормозные компиляторы обычно как-то переносят его и на пёсик не совместимые платформы. А если не переносят, то виноваты те, кто не используют пёсика в своих ОС!

ну так зачем этот инвалид нужен вобще?

Чтоб был. Умные люди умеют его использовать, а инвалиды, вообще-то это те, кто считают что в кошельке нужно держать лишь однорублёвые монеты, потому что они универсальны и с ними надо меньше думать.

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

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

этот язык невозможно применять.

Тебе тут намекали, что ты и Си хреново применяешь.

очень богатый набор. кроме этой фигни я так понимаю больше никакого ПО на компе не держишь или есть ещё что то?

Есть и другое, но тебе и этого хватит. Ты то ничего полезного самописного на Си на своём десктопе не держишь, потому что не умеешь делать ничего полезного ни на одном ЯП.

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

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

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

Типа хакерства на ровном месте с указателями и побитовыми сдвигами, которое вообще-то платформозависимо, но не беда, специальные тормозные компиляторы обычно как-то переносят его и на пёсик не совместимые платформы.

Вот не надо.

Всё, что должен делать компилятор, прописано в официальном стандарте. И ничего сверх этого он не делает ради кода с UB.

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

Вот ещё что в С/С++ доставляет, так это стандарты. То есть какая-то закрытая группа «сионских мудрецов» собирается где-то на сходку и решает что во всём мире во всех компиляторах этих языков должно быть, а недопрограммисты пусть это используют и о нужных им фичах и не мечтают - за них мудрецы придумают когда надо будет...

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

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

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

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

Так fpc и так развивается не по американским стандартам, хотя и тянет совместимость с дельфями. Сделать патч для того чтобы можно было писать многие ключевые слова в IMB 866 кодировке, по русски, идея есть но каждый раз лень - сутки не резиновые, всех дел не переделаешь.

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

Так fpc и так развивается не по американским стандартам, хотя и тянет совместимость с дельфями.

Но мудрецами, а не тобой. Никакой разницы с gcc.

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

Конкретные претензии то будут? Потому что данный исходник можно например запихнуть одним файлом в src.rpm, скомпилировать перед использованием и применить при сборке линуксового пакета:))))) Супер инвазивная технология, компилятор то в репозитории просочился.

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

Конкретные претензии то будут?

Да нет, какие претензии. Это надо сохранить на века как артефакт. Потомки будут ходить в музей и смотреть на код, выбитый в камне.

Потому что данный исходник можно например запихнуть одним файлом в src.rpm,

Пользуешься форматом пакетов вражеской корпорации?

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

Но мудрецами, а не тобой.

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

Никакой разницы с gcc.

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

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

Пользуешься форматом пакетов вражеской корпорации?

Паскаль вообще хорошо использует трофейные артефакты.

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

там нет таких обрубленных консрукций

Есть for, while...

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

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

Не собирал fpc, потому никак прокомментировать не могу.

Но мне тут надо как раз древний gcc собрать под современным дистром. Если совсем замучаюсь, приду жаловаться в эту тему.

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

Вот в том и дело, что ни в gcc, ни в fpc нет ни моего, ни твоего ума. Поэтому от их зауми нам только хлопоты, если надо будет сделать что-то нестандартное.

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

хреново применяешь

хреново применяю? это как?

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

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

хреново применяю? это как?

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

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

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

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

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

простой пример: почему в паскале цикл может только исключительно инкрементировать или декрементировать переменную??? что это за бред вобще?

что это за бред? Кто ж вам запретит-то?

i:=0;
while i<100 do begin
  Dec(i); Inc(i,2);
end;
i:=0;
repeat
  Dec(i); Inc(i,2);
until i>100;

Ах, вы про for ... do?
Давайте сперва посмотрим на эквивалентную конструкцию в C:
// SizeOf(i)=2
for i:=0 to $FFFF do {...};

И неудивительно, это разные циклы, хоть и на одном ключевом слове for. Си-шный for — обычный while-переросток, местами действительно удобный.

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

Давайте сперва посмотрим на эквивалентную конструкцию в C:

// SizeOf(i)=2
for i:=0 to $FFFF do {...};

А на что тут смотреть? Давайте лучше посмотрим на эквивалентную конструкцию в Паскале:

for (some_type_t * item = first_item; item; item = item->next)
{
}

Или на эквивалентную конструкцию 2:

for (char * s = str; *s; s++)
{
}

Или на эквивалентную конструкцию 3:

for (size_t i = 0; initialization_list[i].somedata; i++)
{
}

И неудивительно, это разные циклы, хоть и на одном ключевом слове for. Си-шный for — обычный while-переросток, местами действительно удобный.

Это вам в Оберон, там FOR вообще выпилили. Отвечу словами Напильника:

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

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

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

А в линуксе много таких гуёвых программ? В винде их много и не все тупо работают на семёрке, не выполняют главную функцию, а в линуксе их много? И не так просто и быстро такое написать. Необходимо соединить множество хреновин логическими нитями, а потом это много раз протестировать. В той версии что на соурцефорже, одной важной фичи не хватает, это трудно узнать долго не тестируя. Вот ты ничего такого и не узнаешь и сразу полезешь в продакшен, заливать говно в станки.

жалко только что я комп никогда почти не выключаю

Юный хакер растёт, а потом возникают вопросы: а отчего выход из спячки такой дерьмовый, почему плюсокодеры его не исправят, их же много?

Napilnik ★★★★★
()

Сравнивают С с паскалем. «Чистый» Паскаль (а не Turbo и прочие), конечно, устарел, даже с точки зрения самого Вирта. Оберон, хоть внешне и похож на Паскаль, но это совершенно другой язык. Вирт и его соратники, пожалуй, единственные после создателей UNIX, которым удалось написать с нуля новую операционную систему (которая не является клоном других систем в том смысле, как Linux - клон UNIX) на новом, специально для этой цели разработанном языке программирования (собственно, Oberon), который является неотъемлемой органичной частью этой системы. Да ещё и всё это работает на специально разработанной машине, которая даже выпускалась мелкосерийно. Исходные тексты, кстати, не просто открыты, а ещё и опубликованы в виде книги с описанием.

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

разница между ф-цией видимой внутри единственной ф-ции и ф-цией видимой внутри ф-ций одного файла невелика

Действительно паскаль был пройден. Пройден мимо.

procedure some(var a: array of Integer);
var b: Integer;
  procedure s(left, right: Integer);
  begin
    { здесь нам доступны a и b }
  end;
begin
  s(0,High(a)+1);
end;

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

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

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

А на что тут смотреть?

На то, что 2-байтовая беззнаковая переменная последовательно принимает значения от 0 до 0xFFFF. После этого цикл завершается.
Попытка 1 провалена. Попытка номер два.

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

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

Давайте сперва посмотрим на эквивалентную конструкцию в C:

я не знаю на каком языке эта консрукция но точно не C.

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

Вот потому столько ПО и написано на Си, что паскалисты только циклы а ля [x, y] крутить умеют

На то, что 2-байтовая беззнаковая переменная последовательно принимает значения от 0 до 0xFFFF.

И? Я смотрю, вам там в Паскале часто приходится перебирать в цикле значения от INTn_MIN до INTn_MAX. Аж специальный оператор под это дело завезли.

Попытка 1 провалена. Попытка номер два.

Попытка переписать сишные примеры на паскаль провалена? ну попробуй еще раз, не отчаивайся.

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

у меня нет никакого режима спячки, он просто работает в обычном режиме. не знаю для чего бы всё это могло пригодиться на стационарном компе при круглосуточном доступе к розетке. я не понимаю чем тебя `shutdown -h now` не устраивает. про семёрки не знаю, в сортах говна не разбираюсь.

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

... бегин эндов - составной оператор. Вот в модуле, например, его уже нет.

Это не совсем так.

unit someshit;
interface
implementation
begin { or initialization }
  Halt; { don't worry, be happy }
end.

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

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

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

я не понимаю чем тебя `shutdown -h now` не устраивает.

Уже не помню, чем завершилось тестирование shutdown, но для использования в программе по умолчанию оказалось выбрано что выбрано. Кроме того, если тебе запоминания поролей мало, и ты желаешь ещё и эту команду каждый раз по памяти набирать без ошибок, то будь добр протестировать как работает отмена отложенного выключения/спячки - на рандомной ОС: чей-то чужой пример может тупо не сработать, а время до срабатывания тикает. В гуёвой же программе консольная команда вводится непосредственно перед применением и потому от неё требуется минимум рабочего функционала.

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

я не знаю на каком языке эта консрукция но точно не C

Эта конструкция на паскале. Предложено было написать эквивалент на Си.

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

for i:=0 to $FFFF do {...}; это не на паскале, вроде на паскале будет for i := 0 to $FFFF do begin ... end если я правильно помню это гамно. на C будет: for (i = 0; i < 0xffff; i++) { ... } вроде бы если опять же я правильно помню дуратский паскаль (или может там i <= 0xffff, от паскаля всего можно ожидать). к чему было предложено это написать?

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

если тебе запоминания поролей мало, и ты желаешь ещё и эту команду каждый раз по памяти набирать без ошибок

чувак, если ты не можешь запомнить команду shutdown -h now тебе в программировании нечего делать абсолютно. собственно таким мне паскаль и запомнился - яп для любителей «посоставлять» программки на досуге.

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

на C будет:

for (i = 0; i < 0xffff; i++) { ... }


i не достигло значения 0xffff, последним значением было 0xfffe.
Попытка провалена.
Попробуете еще разок?

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)
Ответ на: комментарий от bormant

ты заблуждаешься, нет никакого бесконечного цикла. ты главное тип данных для i правильно поставь на своём 16-битном 8086 на котором у тебя бесконечный цикл случился.

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