Автор Тема: Семантика SHORT(x) в Компонентном Паскале  (Прочитано 34031 раз)

albobin

  • Full Member
  • ***
  • Сообщений: 198
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #45 : Декабрь 26, 2012, 08:52:39 am »
В осуждаемых же строчках 128 вычитается явно намеренно, с какой-то неизвестной нам целью.

Несколько бредовое предположение :)
М.б. чтобы в файле там, где присутствуют двухбайтные чары было "побольше" байтов от 80 до FF.
Ведь основные уникод символы лежат до 7FFF и вычитание 128 уводит старший байт в область от 80 до FF .

В hex дампе файла эти области будут нагляднее выделяться.



albobin

  • Full Member
  • ***
  • Сообщений: 198
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #46 : Декабрь 26, 2012, 09:08:22 am »
В дополнении к предыдущему.
Я лично изначально представил (неправильно),  что это (вычитание 128) как раз для маркирования  двухбайтных чаров в файле.
Но позже вроде понял, что есть специальные маркеры для пометки областей с такими чарами. Или там в формате файла заложены длины и типы областей.  Как на самом деле  - точно не знаю. Это надо копаться.
 

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #47 : Декабрь 26, 2012, 09:47:02 am »
Или там в формате файла заложены длины и типы областей. 
Там длина одновременно кодирует тип. Если отрицательная, то символы двухбайтовые.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #48 : Декабрь 26, 2012, 10:21:15 am »
Блин, что за такое извращённое стремление к минимализму?
Да взяли бы просто записали бы потоком по два байта на символ (раз уж у них символы размером в два байта) и сжали бы gzip'ом -- экономия места на диске была бы в разы больше!
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #49 : Декабрь 26, 2012, 03:57:06 pm »
Ага, ещё из зип-архивацию сразу писать :) Или плодить зависимость базовых подсистем от каких-то непойми-левых библиотек :)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #50 : Декабрь 26, 2012, 04:07:51 pm »
Ага, ещё из зип-архивацию сразу писать :) Или плодить зависимость базовых подсистем от каких-то непойми-левых библиотек :)
Ну зачем же левые либы? Помнится разбирался в устройстве файлов какого-то словаря, так там применялся для компактного хранения тонн текста тупо алгоритм Хаффмана. И жалось вполне неплохо. И работало быстро. Реализовать такое - раз плюнуть.
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #51 : Декабрь 26, 2012, 04:56:21 pm »
Ага, ещё из зип-архивацию сразу писать :) Или плодить зависимость базовых подсистем от каких-то непойми-левых библиотек :)
Франц осилил упаковку своих сантаксических деревьев, неужто Оминк не осили бы нечто подобное? о_О
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #52 : Декабрь 26, 2012, 05:12:19 pm »
Это пацанство - инвестировать драгоценное время в подобную фичу во время разработки основного функционала системы... :) Даже один день жалко.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #53 : Декабрь 26, 2012, 05:17:01 pm »
Это пацанство - инвестировать драгоценное время в подобную фичу во время разработки основного функционала системы... :) Даже один день жалко.
Ну, реализовать обычного Хаффмана это по затратам примерно столько же, сколько изобретение собственной кодировки с реализацией, и беготней по всем возможным граблям. Если дня жалко - сделали бы фиксированную двубайтовую, тупо ucs-2 и все. Это гарантированно безглючно. Точнее все возможные грабли всем известны.

То есть мне то как раз не понятно инвестирование времени в эту невнятную кодировку с плавающей длиной символа.
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #54 : Декабрь 26, 2012, 05:31:09 pm »
Это пацанство - инвестировать драгоценное время в подобную фичу во время разработки основного функционала системы... :) Даже один день жалко.

Что за бред??? о_О

Сделать целую операционку, всякие редакторы текстовые и графические, компиляторы настрогать -- и не сделать архиваторы? Ну и как они планировали обмениваться информацией с внешним миром? Да даже для тех же графредакторов нужны упаковщики/распаковщики всяких GIF/PNG/JPG форматов!

И какого хрена вообще тогда сжимали свои файлы левыми архиваторами??? Так бы тупо в несжатом виде распространяли бы...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #55 : Декабрь 26, 2012, 05:32:42 pm »
То есть мне то как раз не понятно инвестирование времени в эту невнятную кодировку с плавающей длиной символа.
Да, вот именно! Что это за пацанство с их стороны было???
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #56 : Декабрь 26, 2012, 06:09:20 pm »
2 Geniepro:
Форматы, гзипы, джпеги - всё это делается позже. На других итерациях развития системы.
Чем меньше работы ты можешь сделать на очередной итерации - тем лучше.
Желательно вообще в основном абстракции-интерфейсы сделать и начать пробовать, а реализации - самые "тупые". Потом можно поменять...

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #57 : Декабрь 26, 2012, 06:21:39 pm »
2 Geniepro:
Форматы, гзипы, джпеги - всё это делается позже. На других итерациях развития системы.
Чем меньше работы ты можешь сделать на очередной итерации - тем лучше.
Желательно вообще в основном абстракции-интерфейсы сделать и начать пробовать, а реализации - самые "тупые". Потом можно поменять...
Да, короткие итерации рулят. Самый верный способ загубить проект - попытаться с первой итерации все сдеалать идеально.
Y = λf.(λx.f (x x)) (λx.f (x x))

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #58 : Декабрь 26, 2012, 06:22:05 pm »
Не, зипы - это лишнее. Вы подумайте: файл, хоть в гигабайт на компьютере со считанными мегабайтами памяти можно было открыть за доли секунды и тут же начать редактировать.
 

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Семантика SHORT(x) в Компонентном Паскале
« Ответ #59 : Декабрь 26, 2012, 06:25:25 pm »
Не, зипы - это лишнее. Вы подумайте: файл, хоть в гигабайт на компьютере со считанными мегабайтами памяти можно было открыть за доли секунды и тут же начать редактировать.
То есть в текущей реализации ББ файл (документ) в ОЗУ полностью не грузится?
Y = λf.(λx.f (x x)) (λx.f (x x))