Русскоязычное программирование

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Русскоязычное программирование » трансляторы » Что делать, если нет динамической памяти?


Что делать, если нет динамической памяти?

Сообщений 1 страница 14 из 14

1

При программировании на языке Кумир

Есть два варианта:
1) считать файл в память используя операцию склеивания строк. Затем всё делать в два прохода - на первом проходе подсчитывать количество памяти которая потребуется, на втором проходе создавать фиксированные массивы такого размера и работать с ними.
2) сделать один большой массив и поверх него организовать выделение блоков, систему типов, сборку мусора (недостаток - массива может не хватить)

Отредактировано Лис (2017-10-10 06:28:17)

0

2

О, можно ещё скомбинировать. Вместо массива использовать гигантскую строку (если хранение символа с кодом ноль - это проблема, то байты в неё кодировать символами на манер base64), размер строки при необходимости увеличивать конкатенацией.

Подход универсальный, будет работать и поверх bash и поверх языка Уткина.

Отредактировано Лис (2017-10-10 06:48:33)

0

3

Динамического массива что ли нет?

0

4

MihalNik написал(а):

Динамического массива что ли нет?


Не знаю, покажи мне его.

0

5

Не проще ли выбрать другой, более совершенный инструмент? Ну например, как дела у Кумира с подключением длл? Пусть будет длл-ка, которая расширяет его до приемлемого уровня.

Отредактировано utkin (2017-10-10 09:59:00)

0

6

Мне известно два варианта - либо Кумир, либо 1Скрипт. Кумир я уже запустил, а 1Скрипт ещё нет.

А других инструментов нет.

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

Про дллку я уже писал в другом топике, но это будет не русскоязычное программирование

Отредактировано Лис (2017-10-10 12:25:17)

0

7

Лис написал(а):

Мне известно два варианта - либо Кумир, либо 1Скрипт. Кумир я уже запустил, а 1Скрипт ещё нет.
<...>
но это будет не русскоязычное програмирование

А чем эти два в русском языке сильнее какого-нибудь Глагола?

0

8

MihalNik написал(а):

А чем эти два в русском языке сильнее какого-нибудь Глагола?

Тем что они оба работают на Linux, а Глагол - нет.
И надо же какое совпадение - я тоже работаю на Linux, а Windows у меня нет.

Отредактировано Лис (2017-10-10 12:22:10)

0

9

Ну так я предлагаю посмотреть подключение к КУМИР сторонних библиотек (*.so, раз уже линукс принципиально важен).

0

10

utkin написал(а):

Ну так я предлагаю посмотреть подключение к КУМИР сторонних библиотек (*.so, раз уже линукс принципиально важен).


Такая возможность есть, но она пока не нужна лично мне.
Всё что нужно мне - пока что может быть сделано (изкоробочными) средствами самого Кумир-а.

Можно было бы сделать "исполнитель Сокеты", это бы позволило коннектиться ко всему подряд (от вебсерверов до графики),
и в частности - кравлить форумы с целью сохранения контента,
но я пока такое не собираюсь делать (потому что вижу другой путь, и на моём пути это ненужняя преждевременная работа).

Отредактировано Лис (2017-10-10 14:51:16)

0

11

Лис написал(а):

Тем что они оба работают на Linux, а Глагол - нет.

Куча других нерусских языков работают под linux, сколько в КуМире примерно замен на русские недослова для перевода на С++ или куда он там компилируется?
Если там сотня слов, то чем будет сложнее сделать замену для любого не урезанного языка?

Отредактировано MihalNik (2017-10-10 19:32:08)

0

12

MihalNik написал(а):

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

Ты не понимаешь красоту идеи. Любой школьник может спросить: "да что можно сделать на этом вашем урезанном кумире". А тут ему бац: Можно сделать компилятор кумира, и даже более сложного языка!

У меня смутные воспоминания, что в первых дельфях тоже динамических массивов не было, сделали потом, версии к третьей по-моему.

О, даже не к третьей, а к четвёртой - https://en.wikipedia.org/wiki/Delphi_(p … and_Delphi, через 3 года после первой версии, коллективом разработчиков.

Ты предлагаешь делать транспиляцию. То есть замену слов в синтаксисе. Я предлагаю разрабатывать язык как хочется. При транспиляции ты опираешься на механизмы, реализованные в этом другом языке (например в Rust). Когда сам делаешь - надо во всём разобраться. Именно разобраться как сделать то или это - наиболее интересно. И как оно сделано (например распределение блоков памяти в гигантской строке) - будет написано русскими словами на русском языке.

MihalNik написал(а):

или куда он там компилируется?

У Кумира два режима:
1) своя виртуальная машина
2) компиляция через LLVM

Отредактировано Лис (2017-10-11 00:33:20)

0

13

1) своя виртуальная машина

Которая написана каким языком?

Лис написал(а):

Ты предлагаешь делать транспиляцию.

Я НЕ предлагаю этого делать. Я предлагаю СРАВНИВАТЬ возможности.

Лис написал(а):

считаю, что написать прокладку быстрее, чем транслятор

И сравнивать соотношение затраты/возможности.

Лис написал(а):

Именно разобраться как сделать то или это - наиболее интересно.

Интересно только в определённом соотношении затрат времени и труда с качеством и применимостью полученного в итоге.

Отредактировано MihalNik (2017-10-11 04:01:02)

0

14

Если так не хочется писать код на Кумир-е, то его можно генерировать!

Написать транспилятор из произвольного синтаксиса в Кумир. И ни одна английская буква не пострадает.

0


Вы здесь » Русскоязычное программирование » трансляторы » Что делать, если нет динамической памяти?