Не претендую на точность . Ориентировался на фразу из википедии “Язык Паскаль был создан Никлаусом Виртом в 1968—1969 годах” , а в Википедии, как известно бывают неточности.
Если честно, то я Вас не понял.
Попробую сказать другими словами. Если разработчик языка A делает на этом языке A какой-то большой проект , то он выясняет при этом много тонкостей, которые помогают развить этот язык A. Причём это помогает зачастую лучше, чем отзывы других. Если разработчик языка А сам в основном программирует на языке Б, то он такой информации не получит.
Пакет из трёх лабораторых работа на Turbo Pascal , переведённых на PascalABC + методические рекомендации по конвертации кода. Больше не загружал, т.к. из найденного мною старого кода только массивы, сортировка и прочее, что есть уже в примерах. Может, кому и пригодится.
Labs.rar (67,6 КБ)
Доброго времени суток, я так понимаю, здесь межконтинентальный бугурт на тему C# и Pascal. Так вот, мой проект vkapi pascalabc wrapper полностью совместим с .net Вот - VKAPI PascalABC.NET Wrapper
Нормальное описание тут.
Вот превьюшка что может SAC:
KeyD 160 //нажать левый шифт
KeyP Ord("S") //нажать `S` на клавиатуре. Вместе с шифтом получиться заглавная версия буквы S
KeyU 160 //отжать левый шифт
Sleep 1000/3 //ждём 1/3 сек
Jump "#" //прыгаем в начало этого файла (на пустую метку, которая всегда в начале файла)
(Это надо засунуть в файл какое то имя.sac и запустить, он будет 3 раза в сек. писать S, если вы откроете какой то текстовый редактор)
Остальное реально разобраться на примерах, README.md на гитхабе и справке (Help.exe)
Эх… еще бы знать, куда это приспособить…
Это более юзер-френдли версия, я старой (ужасно кривой) находил применяния, раз в несколько месяцев)) Для чего то простенького… А раз эта более юзабельная - знач и наверное жешь и применений больше)
Ну и написали бы, для чего можно. Я вот сколько не думал, так и не смог придумать.
А вот и применение :
Вряд ли это может быть сильно интересно вам, но всё же, хоть где то полезно!
Я наконец добрался до работы с сетью… И для начала решил сделать чат. Уже протестировал, работает по сети. Как запустить написано на гитхабе, но вот ещё перевод на русский:
- Файлы:
1.1. Компьютер-сервер должен иметь файл Server.exe
1.2. Компьютер-юзер (клиент) должен иметь файл Client.exe
(Если хотите и запустить сервер и подключится к нему - вам нужны оба .exe файла)
1.3. И серверу и клиенту нужен файл server adress.txt, содержащий ip и порт компьютера - сервера.
Его содержимое должно выглядит как что то типа 11.22.33.44:11000
(перед :
стоит ip, а после - порт)
Все компьютеры которые должны соединится - должны иметь одинаковый ip и порт.
- Получение ip и порта:
Если вы не умеете настраивать переадресацию модема (portforward) - используйте что типа hamachi.
В таком случае скопируйте ip из hamachi (или из другой программы которую вы используете).
Иначе просто скопируйте ваш основной IPv4 адрес.
Далее выберите любой порт и отправьте готовый файл server adress.txt
всем кто должен подключится.
- Запуск:
Сначала всегда запускайте сервер.
Затем запустите свой клиент и скажите всем остальным тоже запустить их клиенты.
Возвращаясь к вопросу создания компилятора паскаля на паскале. Нарыл вот интересный компилятор - http://mads.atari8.info/ . Весь исходный код на паскале. Вполне возможно, что после доработок откомпилируется и на PascalABC.NET
А не легче ли перевести исходники компилятора паскаля на паскаль?)) С C# на паскаль всё очень просто переводится. (Если не считать сколько там миллионов строк кода в этом компиляторе)
То что вы кинули, кстати, написано на 1 из старых паскалей (или, по крайней мере, в старом стиле). Компилироваться оно наверняка будет, но… Мне лично было бы легче с 0 переписать, чем с таким кодом работать.
И кроме того, компилятор на паскале найти не сложно. Вот, к примеру, мой. Но если синтаксис другой - то “пару моментов подредактировать” чтоб получился компилятор PascalABC.Net - не выйдет. Всё равно с 0 писать.
А чтоб научится - надо всегда сначала самому написать хоть что то а потом уже смотреть как то же самое реализовали другие. Иначе будет куча пробелов в знаниях.
Вопрос - зачем
Вот любите Вы неприличные вопросы задавать!
Да, люблю
Тогда уж, скорее, риторические: Вы ведь и сами догадываетесь, зачем. )))
Мне тут понадобилось сделать кольцевой буфер, вроде задача тривиальная , а гугл ответ не сразу выдаёт(ну кроме учебных алгоритмов, лучше уж велосипед самому писать, чем такой в продакш) . Мой вариант во вложении. Что смутило при реализации.
- Есть ли в PascalABC.Net что-то типа move? А то для больших массивов поэлементное копирование такое себе удовольствие. Ну мне-то сойдёт для моих целей.
- А если нужно результат не в динамический , а в статический массив поместить? Что-то в отличие от Delphi с указателями на массивы проблемы определённые.
KBuf.rar (1,2 КБ)
System.Buffer
. Но это работает только для стандартных типов.
Ещё вариант - создать динамическую функцию через System.Reflection.Emit
, в IL вроде есть что то для такого копирования.