Hacker News Digest

Тег: #pascal

Постов: 4

Are-we-fast-yet implementations in Oberon, C++, C, Pascal, Micron and Luon (github.com)

Проект представляет собой набор реализаций бенчмарка "Are-we-fast-yet" на различных языках программирования, включая Oberon, C++, C, Pascal, Micron и Luon. Основная цель - сравнение производительности разных языков через единый тестовый набор. Реализации позволяют разработчикам оценить эффективность каждого языка в стандартных задачах и понять, как современные языки конкурируют с классическими.

Бенчмарк охватывает ключевые алгоритмические задачи, такие как сортировка, обработка строк и математические вычисления. Интересно, что даже в 2023 году некоторые классические языки, как C и Pascal, демонстрируют конкурентоспособную производительность, в то время как более современные языки предлагают разные компромиссы между скоростью и выразительностью кода. Проект предоставляет ценный ресурс для выбора языка программирования под конкретные требования производительности.

by luismedel • 26 октября 2025 г. в 23:08 • 75 points

ОригиналHN

#oberon#c++#c#pascal#micron#luon#benchmarking#performance#algorithm#github

Комментарии (19)

  • Обсуждение в основном касается языков Oberon и их компиляторов, включая их производительность и репозиторий.
  • Участники обсуждают, что репозиторий недавно добавил реализацию на C++, но она оказалась значительно медленнее.
  • Также поднимается вопрос о названии Micron — участники считают его плохим выбором, так как может вводить в заблуждение.
  • Появляется ссылка на недавно опубликованные результаты тестов производительности.
  • Участник под ником «dead» отмечен как неактивный.

Pasta/80 is a simple Pascal cross compiler targeting the Z80 microprocessor (github.com)

Разработчик представил Pasta80 - компилятор, совместимый с Turbo Pascal 3.0, который генерирует машинный код для классических и современных компьютеров на базе процессора Z80. Проект поддерживает ZX Spectrum 48K/128K/Next и системы с CP/M, позволяя современным программистам создавать приложения для ретро-платформ. Код компилятора написан на C++ и открыт под лицензией MIT.

Особенность проекта заключается в том, что он не просто эмулирует старую среду, а создает полноценный компилятор, способный генерировать эффективный машинный код для оригинального железа. Это позволяет разрабатывать нативные приложения для ретро-компьютеров без необходимости использования эмуляторов или виртуальных машин. Проект уже поддерживает несколько ключевых платформ Z80-экосистемы и может быть расширен для работы с другими устройствами на этой архитектуре.

by mariuz • 21 октября 2025 г. в 07:23 • 102 points

ОригиналHN

#pascal#z80#c++#compiler#retro-computing#cross-compiler#github

Комментарии (17)

  • Обсуждение всплеснуло ностальгией по простым 8-битным процессорам и первым компиляторам, вспоминая, как трудно, но вдохновляюще было писать компиляторы для них.
  • Участники делились личными историями о первых опытах с Pascal и C, отмечая, что ранние компиляторы были однопроходными и как это влияло на разработку.
  • Всплеск воспоминаний привел к обсуждению того, как языки и компиляторы эволюционируют, и как это влияет на безопасность памяти и стабильность программ.
  • Тонко подметили, что современные языки и инструменты, возможно, заставляют разработчиков быть менее внимательными к низкоуровневым деталям.
  • В конце обсуждение свелось к тому, что хотя технологии и стали более сложными, но некоторые считают, что это может отдалить нас от основ и что важно сохранять хоть какое-то взаимодействие с этими основами, такими как архитектура Intel 8086 и идея однопроходной компиляции.

Fenster: Most minimal cross-platform GUI library (github.com)

fenster — сверхкомпактная кроссплатформенная GUI-библиотека.

  • Особенности:

    • Окно, пиксельный буфер, ввод с клавиатуры/мыши.
    • Один .h файл, ~400 LOC, зависимости: X11 (Linux), Cocoa (macOS), Win32 (Windows).
    • Поддержка C/C++, Zig, Odin, Rust, Go, JS (WASM), C#, Swift, Pascal, Nim, Lua, Python, Ruby, OCaml, Fortran.
  • Быстрый старт (C):

#define FENSTER_IMPL
#include "fenster.h"
int main() {
  struct fenster f = {.width = 320, .height = 240, .title = "demo"};
  uint32_t buf[320*240];
  for (fenster_open(&f); fenster_loop(&f) == 0; ) {
    // рисуем
    fenster_sync(&f, buf);
  }
  return 0;
}
  • Сборка: cc demo.c -o demo (Linux: -lX11, macOS: -framework Cocoa, Windows: без флагов).

  • API (C):

    • fenster_open, fenster_close, fenster_loop, fenster_sync.
    • Поля: width, height, title, keys[64], mouse.
  • Лицензия: MIT.

by klaussilveira • 25 августа 2025 г. в 19:41 • 118 points

ОригиналHN

#c#zig#odin#rust#go#c##swift#pascal#nim#lua

Комментарии (31)

  • Fenster — это минимальная C-библиотека, создающая окно с пиксельным буфером, а не полноценный GUI с кнопками и меню.
  • Участники отмечают отсутствие скриншотов и просят добавить их в README.
  • Название «Fenster» переводится как «окно» на немецком, африкаанс, шведском и других языках.
  • Некоторые считают polling-цикл ошибкой, другие считают его допустимым для такой простой задачи.
  • В блог-посте нашли опечатку в sizeof и ограничение кода 8-битными цветами.
  • Проект вызывает интерес для визуализации данных и как лёгкая альтернатива raylib.

MS-DOS development resources (github.com)

DOSDevelResources — подборка инструментов и ссылок для разработки под DOS.

Содержание

  • Языки

    • C/C++: Watcom, DJGPP, OpenWatcom, SmallerC, SubC
    • Pascal: Free Pascal, Turbo Pascal 5.5
    • BASIC: FreeBASIC, QB64, QuickBASIC 4.5
    • Сборка: NASM, FASM, WASM, TASM, MASM 6.11
    • Прочее: Rust (rustc-dos), Go (gccgo), Lua, Python 2.4
  • Библиотеки и API

    • Allegro, SDL, Raylib, GRX, pdcurses, OpenGL (Mesa3D), VESA, SoundBlaster, TCP/IP (Watt-32, mTCP)
  • Утилиты

    • Редакторы: RHIDE, FTE, SETEdit, TDE, Vim, Emacs
    • Отладчики: GDB, WD, TD, SoftICE
    • Упаковка: UPX, LZEXE, PKLite, Diet
    • Эмуляция: DOSBox, DOSBox-X, 86Box, PCem, Bochs
    • Разное: Git, Make, Doxygen, Valgrind-like (Dr. Memory)
  • Документация

    • Ralf Brown’s Interrupt List, PCGPE, Intel/AMD manuals, OSDev Wiki
  • Ссылки

Как пользоваться

Клонируйте репозиторий:

git clone https://github.com/SuperIlu/DOSDevelResources.git

Все файлы/архивы лежат в каталогах по темам.

Лицензия

MIT.

by mariuz • 17 августа 2025 г. в 16:10 • 104 points

ОригиналHN

#c#c++#pascal#basic#nasm#fasm#freedos#dos#git#rust

Комментарии (32)

  • Участники вспомнили, что DOS-ретросцена жива: анонсирован 3-месячный DOSember game-jam.
  • Перечислены доступные инструменты: HX DOS Extender, JWasm, Borland C++ 3.1, Free Pascal, DJGPP, GW-BASIC/PC-BASIC, а также MIT-лицензированный набор Microsoft 1988 года.
  • Названы ключевые ресурсы: PC Games Programming Encyclopedia, эмулятор PCjs, книги «Black Book of Graphics Programming», «Programmer’s Guide to the EGA/VGA» и «PC-Intern».
  • Отмечены удобные IDE: RHIDE и клон Turbo Vision от Free Pascal, а также ностальгия по быстрым Borland-IDE.
  • Обсуждали, что современные ассемблеры (FASM/NASM) удобнее старых MASM/TASM, а DOS-цели можно собирать даже из Win32 PE.