Size: a a a

Compiler Development

2021 April 05

K

Kakadu in Compiler Development
ОКей, подписался. посмотрим
источник

o⭐

omeleto ⭐️ in Compiler Development
K R
Используется ли теория узлов в компиляторостроении?
источник

[

[BRM]White Rabbit in Compiler Development
Ник у вас забавный
источник

С

Станцуем Жизнь... in Compiler Development
[BRM]White Rabbit
Ник у вас забавный
Зато факт
источник

К

Константин in Compiler Development
Антон Пилипчук
Просветите меня пожалуйста.

Есть лексер который строит последовательность токенов.

Допустим токены хранятся в массиве. Допустим массив индексируется бесзнаковым целым числом.

Есть некий исходный код на миллионы строк. То есть токенов может быть миллиард.

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

АП

Антон Пилипчук... in Compiler Development
Константин
Учитывая идею языка, которую Вы описывали, выглядит так, будто Вы сказали, что хотите управлять миром, а теперь спрашиваете, как завязывать шнурки. У Вас большой опыт программирования?
Программистом работаю с 2010 года, а вообще программированием начал заниматься в 2006.

Ну а вот в разработке компиляторов опыта гораздо меньше.

Спрашиваю как завязать шнурки просто потому что раньше, по неведомым мне причинам, не задумывался о том, что токенов может быть много, и о том что будет в том случае о котором спрашивал.

На данный момент вопрос закрыт.
источник

ВМ

Виталий Медоваров... in Compiler Development
Можно сделать вместо массива массив массивов и дело с концом)
источник

ВМ

Виталий Медоваров... in Compiler Development
Будете вместо одного usize индекса таскать два usize индекса
источник

ВМ

Виталий Медоваров... in Compiler Development
один для окна, другой для сдвига в окне
источник

А

Алексей ayaye :)... in Compiler Development
Антон Пилипчук
Просветите меня пожалуйста.

Есть лексер который строит последовательность токенов.

Допустим токены хранятся в массиве. Допустим массив индексируется бесзнаковым целым числом.

Есть некий исходный код на миллионы строк. То есть токенов может быть миллиард.

Как быть с той ситуацией когда токенов(лексем) в анализируемом коде больше, чем может быть проиндексировано в массиве токенов?
токены все сразу не нужны, поэтому для них  естественнее использовать stream, а не array
источник

ВМ

Виталий Медоваров... in Compiler Development
ну стрим внутри может содержать array, возможно в виде циркуляр буфера (вдруг очень хочется делать лук ахеды и лук бехайнды на n токенов)
источник

АП

Антон Пилипчук... in Compiler Development
Виталий Медоваров
ну стрим внутри может содержать array, возможно в виде циркуляр буфера (вдруг очень хочется делать лук ахеды и лук бехайнды на n токенов)
вот у меня именно так и сделано
источник

АП

Антон Пилипчук... in Compiler Development
Виталий Медоваров
ну стрим внутри может содержать array, возможно в виде циркуляр буфера (вдруг очень хочется делать лук ахеды и лук бехайнды на n токенов)
я вот только периодически думаю использовать не массив, а какую то двустороннюю очередь.

Но пока не нашёл веских оснований.
источник

[

[BRM]White Rabbit in Compiler Development
Двусторонняя очередь это двусвязный же список, не?
источник

AT

Alexander Tchitchigi... in Compiler Development
[BRM]White Rabbit
Двусторонняя очередь это двусвязный же список, не?
Вы путаете интерфейс и реализацию. 😉
источник

[

[BRM]White Rabbit in Compiler Development
deque - контейнер, а не интерфейс, если я не совсем тупой🤔
источник

K

Kir in Compiler Development
[BRM]White Rabbit
deque - контейнер, а не интерфейс, если я не совсем тупой🤔
Его можно по-разному реализовать - через циклически буфер, через 2 односвязных списка, через 1 двусвязный
источник

AT

Alexander Tchitchigi... in Compiler Development
Kir
Его можно по-разному реализовать - через циклически буфер, через 2 односвязных списка, через 1 двусвязный
Да хоть через один односвязный! Просто чтение/вставка в конец будет за O(N), что тупо, но функциональной спецификации не противоречит.
источник

AT

Alexander Tchitchigi... in Compiler Development
[BRM]White Rabbit
deque - контейнер, а не интерфейс, если я не совсем тупой🤔
Для Вас интерфейс — это то, что написано после слва interface? Или что такое "контейнер" вообще? 😉
источник

[

[BRM]White Rabbit in Compiler Development
интерфейс объекта это конечно же внешнее апи
источник