vak: (Default)
[personal profile] vak posting in [community profile] besm6
Сегодня мы со [personal profile] spamsink совершили рывок и совместными усилиями довели паскалевский тест до состояния компилируемости без ошибок. Список обнаруженных проблем:

1. Не поддерживается тип "set of char", и даже "set of 'a'..'z'".

2. Не работает тип "set of 1..100". Максимальный размер для множества целых чисел - "set of 0..47".

3. Не поддерживается массив файлов, то есть тип 'array of text'.

4. Примитивы succ() и pred() не работают с целыми аргументами.

5. Экспонента плавающих чисел ограничена диапазоном -18..18.

6. Процедура dispose() не принимает выражение в качестве аргумента, только переменную.

7. Примитивы pack() и unpack() не работают с массивами с отличающимися типами индексов, например "array [integer] of ..." и "array [char] of ...".

8. Тест целиком не помещается в таблицы компилятора, пришлось разбить его на три части.

Date: 2019-05-11 12:03 am (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Попробовал. :) Размер функции увеличивается тривиально; а вот индекс таблицы символов должен помещаться в 15 бит, поэтому максимально возможный диапазон - это 74000-77777 (было 74000-75500).
500 литералов - это не общее количество, а размер группы, в которой совпадающие объединяются. Как только набирается 500, они выталкиваются в файл и начинается формирование новой группы; из-за этого между группами могут быть повторения. Когда я увеличил размер группы (MAXLIT), то рекомпиляция компилятора перестала совпадать, так что пока для удобства оставил как есть.

Profile

Сообщество любителей БЭСМ-6

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930 31   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 16th, 2026 07:27 pm
Powered by Dreamwidth Studios