powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Языки программирования семейства Pascal [закрыт для гостей] / Creating Gear: An interpreter written in Free Pascal, Поиск: Искать сообщения, созданные автором: Неуловимый Джо  
25 сообщений из 107, страница 3 из 5
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #558421
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
s62  30.09.2023, 09:15
[игнорируется]
В Паскале - case! :)
Да просто глава так в книге называется, вот я на автомате и повторил.
В этом языке приходится
switch
case 1
case 2
else
end

Приходится, потому что автор выбрал стиль без бегин енд, а блоки надо как-то отделять.
Тут блок будет заканчиваться очередным case.
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #558422
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
А мне, если сейчас перейти на begin end, это все операторы править.
...
Изменено: 30.09.2023, 10:16 - Неуловимый Джо
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #558423
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
позже картинку вставлю, какой он предлагает вариант кейса.
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #558485
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
s62  30.09.2023, 09:15
[игнорируется]
Кстати удобная конструкция.
что есть то есть.
Снимок.PNG
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #558757
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Автор книги конечно хороший программист на Паскале, но как дизайнер языка ... говно какое-то если честно

Вот что он предлагает

method(a,b)(c,d)

Это означает что функция вызывается с параметрами (a, b), а потом результат с параметрами (c, d)
достаточно часто приходится продираться через код, чтобы избавляться от подобного говна.
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #559406
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Снимок.PNG
...
Рейтинг: 2 / 0
Нравится: s62, Гарыныч
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #559461
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
И рекурсивные :)
Снимок.PNG
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #559485
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
closures

не то чтобы это было нужно, это скорее как побочный результат того, что для функций сделано свое "адресное пространство" (на самом деле обычный Dictionary).
в итоге они получились вложенные, ну и такие возможности.
Снимок.PNG
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #559542
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Ханойские башни :)
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #559998
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Модуль "стандартных" функций.
Теперь язык можно расширять функциями.

Пока просто для примера добавлена pi() и Writeln

Оператор Print теперь можно и удалить.
Это был первый оператор :)
Снимок.PNG
Снимок2.PNG
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #561449
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
На этом наверно и всё.
Дальше уже не интересно.

Теперь возможно то же самое на сишарпе.
Подумаю еще чем дальше заняться.
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #561601
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
А хотя нет.
Нужно еще провести эксперимент.
Попробовать использовать этот интерпретатор в качестве скриптового языка в VCL приложении.
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #561603
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Так-то штука получилась расширяемая.

добавление константы sLineBreak
Снимок2.PNG
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #571131
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Продолжать буду тут
Может эта тема как-то поможет расшевелить рескул :)

https://resql.ru/forum/topic.php?fid=58&tid=2186854

уже сделал выражение Case и интерполяцию строк.
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #573321
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Краткая запись функций (стрелочный функции)
Снимок.PNG
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #573323
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Возможно так будет удобнее для локальных функций.
Снимок.PNG
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #573594
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Анонимные функции!
Самому начинает нравиться этот язык :)
Снимок.PNG
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #573829
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Лямбды как в шарпе
Снимок.PNG
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #579085
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Кортежи!
tuples
Снимок.PNG
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #579087
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Вызовы функций и кортежи там делаются через интерфейсы.
В Variant передается интерфейсный объект, и тут Lazarus слегка отличается от Delphi, пришлось повозиться с отладкой и поиском в StackOverlaw.
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #579091
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
И функция возвращает tuple, если не заметили :)
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #579312
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Правда пока только создание.
Чтение и изменение элементов еще не сделано.
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #579351
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Только трюков типа (a, b) = (b, a) тут не получится.
В этом интерпретаторе у него изначально всё как говорится ByVal.
Все переменные и константы это Variant.

то есть
var a = 1, b =2
var tp = (a, b) // здесь будут копии величин, а не ссылки на переменные.
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #579353
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Наверно надо было изначально не на Variant, а на TObject завязываться.
Ну или как-то посложнее работу с указателями.
Ну да ладно.
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Creating Gear: An interpreter written in Free Pascal
    #579431
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
Хоть просто способ вернуть несколько значений из функции.
...
Рейтинг: 0 / 0
25 сообщений из 107, страница 3 из 5
Форумы / Языки программирования семейства Pascal [закрыт для гостей] / Creating Gear: An interpreter written in Free Pascal, Поиск: Искать сообщения, созданные автором: Неуловимый Джо  
Читали тему (2): Анонимы (1), Yandex Bot 4 мин.
Игнорируют тему (1): erbol
Читали форум (2): Анонимы (1), Yandex Bot 4 мин.
Пользователи онлайн (17): Анонимы (9), жЫвоглот, Bing Bot, Yandex Bot, Буся, pashtetos1 3 мин., Ветер 3 мин., Умник-практикующий 3 мин., 9288 4 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]