Автор Тема: [Oberon-07/11] Беззнаковое целое.  (Прочитано 24471 раз)

maliya

  • Newbie
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #30 : Декабрь 16, 2012, 08:46:33 am »
in CP, for unsigned int(8,16), just use MOD operator:
uint8 := x MOD 256;
uint16 := x MOD 65536;


DIzer

  • Гость
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #31 : Декабрь 16, 2012, 08:56:10 am »
...
Я конечно зануда, но я не поленился, и проверил. Вначале я сходил в доку по КП (cюда: http://plas.fit.qut.edu.au/gpcp/LanguageReport.aspx#Type ), выяснил, что char он таки 16ти битный в КП (вне зависимости от реализации), а байт это натурально sint8. И тут то у меня и закрались подозрения.
....
Много слов - но суть сводится  к тому, что КП - (точнее его ББ - реализация), плохо подходит для низкоуровневого программирования (точнее его задач), но тут вы вступаете в противоречие, с высказыванием Ильи -  о том, что ИМЕННО для этой области ББ хорош...  - тут либо кто-то из вас неправ, либо нужно  уточнять эту возможную область использования КП. Пока, у меня не вызывает противоречивых ощущений только ниша , где сидит Инфо21 (научное самопальное прототипирование)

DIzer

  • Гость
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #32 : Декабрь 16, 2012, 09:03:24 am »
Тема не удалялась, она на месте.
Вы пытаетесь пойти по ссылке на отдельное сообщение.
;) а где это сообщение, и что , по вашему, я должен думать, если после активации ссылки получаю сообщение "Запрошенной темы не существует."?

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #33 : Декабрь 16, 2012, 09:04:49 am »
Мои оценки КП высказаны при следующем способе примения: сначала абстрагируем низкоуровщину (мирясь с некоторым оверхедом относительно Си внутри реализации абстракций), а затем решаем задачи, традиционно решаемые на Си, с помощью своих абстракций (по типу абстракций Go и подобных).
"Задачи, традиционно решаемые на Си" - реализация сетевых протоколов, их клиентских и серверных частей. Например, HTTP, FastCGI.
Или реализация хранилищ данных по типу NoSQL.

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля

DIzer

  • Гость
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #35 : Декабрь 16, 2012, 09:08:06 am »
Мои оценки КП высказаны при следующем способе примения: сначала абстрагируем низкоуровщину (мирясь с некоторым оверхедом относительно Си внутри реализации абстракций), а затем решаем задачи, традиционно решаемые на Си, с помощью своих абстракций (по типу абстракций Go и подобных).
"Задачи, традиционно решаемые на Си" - реализация сетевых протоколов, их клиентских и серверных частей. Например, HTTP, FastCGI.
Или реализация хранилищ данных по типу NoSQL.
то есть - речь идет о самопале?

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #36 : Декабрь 16, 2012, 10:42:08 am »
Что Вы имеете в виду под "самопалом"?

DIzer

  • Гость
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #37 : Декабрь 16, 2012, 11:00:17 am »
Что Вы имеете в виду под "самопалом"?
Задача изолированная (либо взаимодействие с внешним окружением ограничено, либо эффектами взаимодействия пренебрегается), 90% кода свои ( самопальные -  не применяются сторонние реализации алгоритмов и компонент)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #38 : Декабрь 16, 2012, 11:13:08 am »
Лично я использую в качестве аналога сишного size_t (для позиций, длин и проч.) уже пару лет как только LONGINT. Ибо придерживаюсь в своём коде "64-bit-ready".
Это конечно здорово, но в Обероне нет типа LONGINT, единственный кандидат на эту роль - LONGREAL.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #39 : Декабрь 16, 2012, 11:17:28 am »
...
Я конечно зануда, но я не поленился, и проверил. Вначале я сходил в доку по КП (cюда: http://plas.fit.qut.edu.au/gpcp/LanguageReport.aspx#Type ), выяснил, что char он таки 16ти битный в КП (вне зависимости от реализации), а байт это натурально sint8. И тут то у меня и закрались подозрения.
....
Много слов - но суть сводится  к тому, что КП - (точнее его ББ - реализация), плохо подходит для низкоуровневого программирования (точнее его задач)
Для низкоуровневого подходит хорошо как раз (почти все программы на нем писаны в низкоуровневом стиле), а вот для близкого к железу программирования (хоть высокоуровневого, хоть низкоуровневого) КП подходит плохо, а Оберон, похоже, подходит не больше чем какой-нибудь js.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #40 : Декабрь 16, 2012, 11:18:35 am »
in CP, for unsigned int(8,16), just use MOD operator:
uint8 := x MOD 256;
uint16 := x MOD 65536;
Thanks.
Y = λf.(λx.f (x x)) (λx.f (x x))

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #41 : Декабрь 16, 2012, 11:22:04 am »
Да, почти верно.
Сторонние библиотеки вполне могут применяться, но только абстрагированным образом. Когда сделан свой абстрактный ООП-интерфейс, который пока можно гонять через одну или другую внешнюю библиотеку, а потом переписать.
Например, когда я перешёл недавно с глючного OpenSSL на PolarSSL - для проектов это оказалось незаметно. Разве что исчезли периодические загадочные исключения в дебрях OpenSSL :)

Вообще, если только проект не совсем миниатюрный и кратковременный, я никогда не буду работать со сторонними компонентами напрямую, без изоляции. Исключением может стать только что-нибудь... например, типа OpenGL, если возможности такой большой библиотеки используются "по-полной". Ну или, пока что, HTML/CSS - сделать свой уровень абстракции пока ещё слабо :) :)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #42 : Декабрь 16, 2012, 11:32:04 am »
Да, почти верно.
Сторонние библиотеки вполне могут применяться, но только абстрагированным образом. Когда сделан свой абстрактный ООП-интерфейс, который пока можно гонять через одну или другую внешнюю библиотеку, а потом переписать.
То есть ты предпочитаешь писать толстые биндинги вместо тонких?

Вообще, если только проект не совсем миниатюрный и кратковременный, я никогда не буду работать со сторонними компонентами напрямую, без изоляции.
Под изоляцией видимо подразумевается не реальная изоляция (изолирующая от неконтроллируемого падения из за ошибки в стороннем компоненте), а просто толстый биндинг?

Исключением может стать только что-нибудь... например, типа OpenGL, если возможности такой большой библиотеки используются "по-полной". Ну или, пока что, HTML/CSS - сделать свой уровень абстракции пока ещё слабо :) :)
Ну, самое интересное в общем то быстро руками не написать, поэтому от биндингов к сторонним либам никуда не деться. Скажем OpenCV, или там x264 ну и вообще ffmpeg. Ну и работа с видеокамерой тоже.

PS. Тонкий биндинг - это просто вытаскиваения в используемый ЯП полного API нужной библиотеки как есть (ну с поправкой на специфику языка).

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

Тонкий биндинг может быть сгенерирован автоматически и обычно не содержит оверхеда (либо он минимален). Толстый биндинг всегда пишется и поддерживается вручную и непременно имеет оверхед.
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #43 : Декабрь 16, 2012, 12:18:36 pm »
Да, почти верно.
....
Хорошо.. теперь Алексей - на сцену свое видение (возможно, с претензиями - но не к словам Ильи , а к ЯП) вопроса.

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: [Oberon-07/11] Беззнаковое целое.
« Ответ #44 : Декабрь 16, 2012, 12:21:41 pm »
Да, я всегда использую толстые биндинги, при этом обычно вообще отвязанные от специфики конкретной либы (ибо я видел очень мало чужих либ, абстракции которых мне бы нравились; либо бывает, что абстракций нет вообще, только болты и гайки).