Автор Тема: Модифицированный синтаксис Оберона  (Прочитано 180294 раз)

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #270 : Ноябрь 29, 2012, 01:09:38 pm »
... а для любителе 0 - индексации - модификатор zerobased   ;), кроме того дать процедуре возможность возвращать нормально любой тип данных допустимый языком.. а не только простые типы и указатели...
« Последнее редактирование: Ноябрь 29, 2012, 01:11:18 pm от DIzer »

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #271 : Ноябрь 29, 2012, 01:11:43 pm »
foo(a, b: int)
    return a*a + b*b
end
Чем плоха такая форма?
Тем, что без вывода типа это работать не будет. Где указан тип возвращаемого значения?
Как анонимная функция не годится?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #272 : Ноябрь 29, 2012, 01:16:06 pm »
foo(a, b: int)
    return a*a + b*b
end
Чем плоха такая форма?
Тем, что без вывода типа это работать не будет. Где указан тип возвращаемого значения?
Как анонимная функция не годится?

Какая ж она анонимная, если у нее есть имя - foo ? :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #273 : Ноябрь 29, 2012, 01:17:53 pm »
foo(a, b: int)
    return a*a + b*b
end
Чем плоха такая форма?
Тем, что без вывода типа это работать не будет. Где указан тип возвращаемого значения?
Как анонимная функция не годится?

Какая ж она анонимная, если у нее есть имя - foo ? :-)
тык "foo" и  есть показатель анонимности (что бы никто не догадался)   ;D

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #274 : Ноябрь 29, 2012, 01:20:42 pm »
инициализацию 0 по умолчанию,  инициализацию переменных в секции var, для хардкорщиков модификатор undef (показатель что переменная не инициализируется), перегрузку процедур, и вместо безликих end ов -  e_rec, e_if,e_for, e_while... и массивы  индексируемые с единицы
0 и nil, секция var не нужна
e_rec, e_if,e_for, e_while - еще варианты: end rec, endrec
про пагубность массивов с единицы уже обсуждалось

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #275 : Ноябрь 29, 2012, 01:22:15 pm »
Какая ж она анонимная, если у нее есть имя - foo ? :-)
сорри
(a, b: int)  return a*a + b*b  end

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #276 : Ноябрь 29, 2012, 01:27:29 pm »
инициализацию 0 по умолчанию,  инициализацию переменных в секции var, для хардкорщиков модификатор undef (показатель что переменная не инициализируется), перегрузку процедур, и вместо безликих end ов -  e_rec, e_if,e_for, e_while... и массивы  индексируемые с единицы
0 и nil, секция var не нужна
e_rec, e_if,e_for, e_while - еще варианты: end rec, endrec
про пагубность массивов с единицы уже обсуждалось

Нужна...
1. разумеется ( кроме nil, еще и '' - для литер) - все должно иметь начальное значение..
2. нужна.. - в противном случае  мыбудем иметь блочную локальность - а это уже не Оберон
3. Херня -это обсуждение  обдолбаных технофошистов- рептилоидов! впрочем ,  если им неймется... пусть пишут zerobased - перед array
- секция var - нц

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #277 : Ноябрь 29, 2012, 01:31:08 pm »
Какая ж она анонимная, если у нее есть имя - foo ? :-)
сорри
(a, b: int)  return a*a + b*b  end
Это полумеры (в обе стороны).

Чтобы было понятно куда двигаться, скажи, где предполагается использовать анонимные функции? (не делаем же мы их, просто для того чтобы "было")
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #278 : Ноябрь 29, 2012, 01:41:17 pm »
 да...  что тогда будем .. иметь: 
1 секционную  организацию  модуля сохраним
2.  END - нафиг (е_module и e_proc без  повторения названий )
3   предопределенную инициализацию
4  примитивную модель памяти
5  перегрузку функций
6  равноправность переменных в интерфейсе процедур

вроде сильно не обгадив основную идею Вирта
 еще бы repeat until бы говенный  заменить...
« Последнее редактирование: Ноябрь 29, 2012, 01:43:18 pm от DIzer »

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #279 : Ноябрь 29, 2012, 02:00:29 pm »
и, разумеется дефолтным  сделать utf-8 ...   с возможностью ввода  русскоязычных идентификаторов

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #280 : Ноябрь 29, 2012, 02:02:51 pm »
разумеется ( кроме nil, еще и '' - для литер) - все должно иметь начальное значение..
2. нужна.. - в противном случае  мыбудем иметь блочную локальность - а это уже не Оберон
если нужна, то только без слова var, а саму секцию можно завершить ;
кстати, мы так лихо порезали ;  где его еще можно притулить?

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #281 : Ноябрь 29, 2012, 02:07:47 pm »
2.  END - нафиг (е_module и e_proc без  повторения названий )
может eif, erec, emodule, efor?
proc, e_proc - не нужен, просто foo() уже определяет, что это процедура или функция.
Цитировать
вроде сильно не обгадив основную идею Вирта
 еще бы repeat until бы говенный  заменить...
Так уже обговорили, что лучше do while и while do

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #282 : Ноябрь 29, 2012, 02:10:25 pm »
разумеется ( кроме nil, еще и '' - для литер) - все должно иметь начальное значение..
2. нужна.. - в противном случае  мыбудем иметь блочную локальность - а это уже не Оберон
если нужна, то только без слова var, а саму секцию можно завершить ;
кстати, мы так лихо порезали ;  где его еще можно притулить?

1. нужна
2. избыточно
3.  для чего ?

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #283 : Ноябрь 29, 2012, 02:14:25 pm »

Так уже обговорили, что лучше do while и while do
а что такое erec - сокращение от erection?  - нет ... принцип построения
 у форм должен быть один   начинаться с   id (уникальный идентификатор формы) - кончаться e_id (добавлением e_  к идентификатору)

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #284 : Ноябрь 29, 2012, 02:15:05 pm »
Чтобы было понятно куда двигаться, скажи, где предполагается использовать анонимные функции? (не делаем же мы их, просто для того чтобы "было")
Сложно сказать, где они незаменимы, может как сахар.
« Последнее редактирование: Ноябрь 29, 2012, 02:16:38 pm от Vartovyj »