Автор Тема: Oberon & GCless modules  (Прочитано 24593 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Oberon & GCless modules
« Ответ #60 : Август 12, 2012, 09:28:43 pm »
Да, всё верно, Алексей. Упустил.

Вот сделать процедуру, которая будет работать так:
VAR r: RECORD ptr: MyObject END;;
New(r)
- можно.
Только, насколько я понимаю тут опять же тип будет вытаскиваться в рантайме и размер тоже. Что не слишком эффективно (ну, то есть жаба душит делать в рантайме то, что гарантированно могло быть сделано в compile time). Впрочем, это уже мелочи :-)

В Обероне NEW штука волшебная. Самое забавное что NEW то процедура с возвратом значения через параметр, а вот NewRec в BB вполне себе функция, которая принимает тип и возвращает указатель: PROCEDURE NewRec* (typ: INTEGER): INTEGER; (кстати, а почему тут сэкономили одну букву - вместо type написали typ? в этом какое-то великий смысл?)
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Oberon & GCless modules
« Ответ #61 : Август 13, 2012, 10:03:36 am »
Не знаю, почему typ, принято так в ядре у них обозначать целочисленный код типа.