Автор Тема: Оберон в образовании.  (Прочитано 105920 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #150 : Февраль 25, 2011, 09:48:51 pm »
А громоздкость.. Нужно просто придумать подходящий синтаксис :-) А это уже дело техники в общем то. Пока это было в стиле Ады :-)
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #151 : Февраль 25, 2011, 09:52:13 pm »
А чем плох тотальный конст? (опять же, можно сделать тотальный конст, но указать исключения из тотальности для данного конкретного случая. хотя... и исключения не нужны -- достаточно дать отдельными параметрами не константными ссылками на те места структуры, которые можно таки менять).

Не знаю. Просто у меня нет четкой картинки как это будет работать и какие из этого буду следствия. Многие языки вообще обходятся без const. И я в последнее время редко возлагаю на const решающую роль в деле контроля над модифицируемостью. Более наглядно получается разделение на уровне интерфейса - вот здесь есть метод write, а у этого только read.

Валерий Лаптев

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #152 : Февраль 26, 2011, 04:47:51 am »
Вызов функции, возвращающей значение определенного типа, может быть операндом выражения соответствующего типа. Вызов процедуры - нет.

Конечно, если функция ничего не возвращает, то "ничего" не может быть приведено к "соответствующему типу". Т.е., это общая ошибка несоответствия типа. Зачем различать, тем более синтаксически? Я не ратую за сишные функции. Просто хочу разобраться :) Может я чего не понимаю и можно почерпнуть какую-то полезность из такого (как мне сейчас кажется) искусственного разделения. Пока я вижу только вред.
Ну, в командах процессора это действительно одинаково. Но ведь фортранисты для чего-то разделил? Может быть, для читабельности?

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #153 : Февраль 26, 2011, 04:52:07 am »
Цитировать
Конечно, если функция ничего не возвращает, то "ничего" не может быть приведено к "соответствующему типу". Т.е., это общая ошибка несоответствия типа. Зачем различать, тем более синтаксически? Я не ратую за сишные функции. Просто хочу разобраться :) Может я чего не понимаю и можно почерпнуть какую-то полезность из такого (как мне сейчас кажется) искусственного разделения. Пока я вижу только вред.
Ну, в командах процессора это действительно одинаково. Но ведь фортранисты для чего-то разделил? Может быть, для читабельности?

Это было давно и неправда :) Если для читабельности - то в каких случаях?

Валерий Лаптев

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #154 : Февраль 26, 2011, 05:16:07 am »
Я думаю, дело еще в том, что фортран создавали математики. А для них функция - это святое...  ;D

kemiisto

  • Jr. Member
  • **
  • Сообщений: 64
    • Просмотр профиля
    • kemiisto.ru
Re:Оберон в образовании.
« Ответ #155 : Февраль 26, 2011, 10:39:18 am »
По-поводу Fortran. Там есть функции (FUNCTION) и подпрограммы (SUBROUTINE). Общий термин - процедура (PROCEDURE). Дык вот, таки функции имеют возвращаемое значение, процедуры - нет. 

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

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

Вот так. Но это, конечно, не вся история.

Чистые функции необходимы, например, для использования во всяких там FORALL и DO CONCURENT. Есть ещё концепция поэлементной функции (ELEMENTAL). Это функция, которая определяется для обычного скалярного аргумента, но может быть применена для массива таких аргументов любой размерности. Такие функции читсые по-умолчанию. То есть ELEMENTAL подразумевает PURE. Хотя в новом стандарте можно заиметь и ELEMENTAL IMPURE функцию. Ещё все стандартные функции чистые.

А с параметрами там тоже интересно. Указывается т.н. намерение (INTENT). Оно может быть IN, OUT и INOUT...

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #156 : Февраль 26, 2011, 11:14:11 am »
Побочный эффект - нормальный инструмент в программировании.
Уж, извините за прямоту, но это- чушь!
Истина состоит в том, что в одних случаях  побочный эффект - это нормальный инструмент в программировании, а в других - это "удар под перекладину" (типа, "каги цуки" - кто знает, тот поймёт). Собственно, только ради этого и понадобилось (бы) разделять подпрограммы на процедуры и функции. Заодно порешались бы проблемы с нарушением ортогональности средств в языке.

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #157 : Февраль 26, 2011, 11:22:28 am »
Только вот побочные эффекты должны быть строго контролируемы.
Не... меня смешат попытки решить эту проблему комбинаторным способом, уж лучше гадая на кофейной гуще = хотя второе не так весело!
2DIzer
Если бы я был чиновником, то ввёл бы обязательное требование к преподавателям в ВУЗах: проработать ведущим инженером не менее 5 лет. Вот, тогда и повеселился бы.  :D
Но, расслабьтесь - я не чиновник.

DIzer

  • Гость
Re:Оберон в образовании.
« Ответ #158 : Февраль 26, 2011, 11:40:02 am »

Если бы я был чиновником, то ввёл бы обязательное требование к преподавателям в ВУЗах: проработать ведущим инженером не менее 5 лет. Вот, тогда и повеселился бы.  :D
Но, расслабьтесь - я не чиновник.
Каждому свое...  :)
PS А с чего вы взяли что я напрягаюсь ?  :D

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #159 : Февраль 26, 2011, 11:54:52 am »
PS А с чего вы взяли что я напрягаюсь ?  :D

Да, нет. Просто мне показалось, что Вы считаете участников обсуждения "жертвами неправильного подхода в образовании":

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

DIzer

  • Гость
Re:Оберон в образовании.
« Ответ #160 : Февраль 26, 2011, 12:05:49 pm »
PS А с чего вы взяли что я напрягаюсь ?  :D

Да, нет. Просто мне показалось, что Вы считаете участников обсуждения "жертвами неправильного подхода в образовании":

Ремесленника ... - когда делается черезмерный упор на специализацию, да еще с самого начала...  ограничения такого подхода дают о себе знать - прекрасный пример эта ветка форума...
Извините , конечно нет, здесь нет неуважения...я СЧИТАЮ что на текущий момент наше государство нуждается в высококачествевнных  УЗКОСПЕЦИАЛИЗИРОВАННЫХ специалистах, в противовес "широкопрофильным".... но у первых есть в силу особенностей образования есть определенные слабости (в частностиЮ слабая адаптивность к изменяющимся условиям )...Что бы полнее понять ту фразу , отрывки из которой вы нарезали - надо просто знать специфику образования в Вузах  сегодня, и хотя бы по диагонали прочитать книгу ссылку на которую дал Илья-    соотнести их между собой. Вообщем Илья в очередной раз в своем амплуа...

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #161 : Февраль 26, 2011, 12:27:40 pm »
мне показалось , что Вы считаете ...
конечно нет, ...
Прям камень с души свалился  :)

Насчёт профиля. Я считаю, что на первых курсах (не далее второго) должен преподаваться широкий профиль. Любой, даже очень узкоспециализированный, специалист должен представлять картину в целом по отрасли: какая в ней проблематика, какие в ней работают специалисты и т. д. Если говорить о технических ВУЗах, то любому специалисту нужна высшая математика, физика и программирование (!!!). По поводу последнего пункта щас меня порвут  ;D  Не все это видят...
Но, начиная с третьего курса требуется погружение в специальность "по-взрослому". Дилетанты с широким кругозором сегодня никому не нужны.

DIzer

  • Гость
Re:Оберон в образовании.
« Ответ #162 : Февраль 26, 2011, 12:42:16 pm »
мне показалось , что Вы считаете ...
конечно нет, ...
Прям камень с души свалился  :)

Насчёт профиля. Я считаю, что на первых курсах (не далее второго) должен преподаваться широкий профиль. Любой, даже очень узкоспециализированный, специалист должен представлять картину в целом по отрасли: какая в ней проблематика, какие в ней работают специалисты и т. д. Если говорить о технических ВУЗах, то любому специалисту нужна высшая математика, физика и программирование (!!!). По поводу последнего пункта щас меня порвут  ;D  Не все это видят...
Но, начиная с третьего курса требуется погружение в специальность "по-взрослому". Дилетанты с широким кругозором сегодня никому не нужны.
Так оно и происходит в Вузах ОБЩЕГО профиля (т.н. классические университеты), но от этого сильно страдает СПЕЦИАЛИЗАЦИЯ,  в специализированных вузах (не обязательно технических).. 1 этап слаб (это относительно), жертвуем кругозором , ради превосходных навыков в специализированной области (предполагаяется , что готовится специалист именно для нужд данной отрасли). По поводу программирования.... сейчас на 1 курсе читается информатика (в той или иной пропорции)- а как наука... или сфера деятельности она за последнии 15 лет сильно раздулась (это только 20 лет назад - обучение ей сводилось в основном к алгоритмизации и программированию)....А насчет порвут...так как же без веселья  ;)

Сергей Прохоренко

  • Newbie
  • *
  • Сообщений: 16
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #163 : Февраль 26, 2011, 02:24:34 pm »
По-поводу Fortran. Там есть функции (FUNCTION) и подпрограммы (SUBROUTINE). Общий термин - процедура (PROCEDURE). Дык вот, таки функции имеют возвращаемое значение, процедуры - нет. 

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

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

Вот так. Но это, конечно, не вся история.

Чистые функции необходимы, например, для использования во всяких там FORALL и DO CONCURENT. Есть ещё концепция поэлементной функции (ELEMENTAL). Это функция, которая определяется для обычного скалярного аргумента, но может быть применена для массива таких аргументов любой размерности. Такие функции читсые по-умолчанию. То есть ELEMENTAL подразумевает PURE. Хотя в новом стандарте можно заиметь и ELEMENTAL IMPURE функцию. Ещё все стандартные функции чистые.

А с параметрами там тоже интересно. Указывается т.н. намерение (INTENT). Оно может быть IN, OUT и INOUT...

Не язык а мечта! Буду изучать FORTRAN.  :D

DIzer

  • Гость
Re:Оберон в образовании.
« Ответ #164 : Февраль 26, 2011, 02:34:16 pm »
... В первом семестре на Кумире писали типичные алгоритмы.
Только что поюзал последнюю версию кумира- вполне съедобно.
Не хватает:
Теории - страничек на 5-10.
Справка по идее должна быть более структурированной.

Есть подозрение, что в вузах сильно не приживется - все таки жалко тратить время на роботов, тот же Oberon не намного сложнее... Жаба давит... Как вы решились перейти на кумир (из каких соображений) если не секрет?