Complete development environment for scientific computing and data analysis
Proxima is a MATLAB-compatible programming language with full OOP support, GPU acceleration, and modern IDE integration. Centauri is the accompanying IDE built with Qt.
- ✅ MATLAB-compatible syntax with
endblocks - ✅ Full OOP with classes, interfaces, inheritance
- ✅ Optional typing with automatic inference
- ✅ GPU acceleration (CUDA)
- ✅ CPU vectorization (AVX/SSE)
- ✅ LLVM-based compilation
- ✅ Automatic memory management (GC)
- ✅ Rich type system (vectors, matrices, layers, collections)
- ✅ Built-in documentation generation
- ✅ Module testing framework
- ✅ C/C++ interface
- ✅ Advanced code editor with syntax highlighting
- ✅ Visual debugging with breakpoints
- ✅ Variable visualization (vectors, matrices, layers)
- ✅ Git integration
- ✅ LLM assistance (LM-Studio)
- ✅ Auto-save system
- ✅ Multi-user collaboration
- ✅ Project management
- ✅ Build system integration
- ✅ Documentation generation
- CMake 3.15+
- C++ Compiler (GCC 9+, Clang 10+, MSVC 2019+)
- LLVM 14+
- Qt 6+
- Git
Optional:
- CUDA Toolkit (for GPU support)
- CURL (for LLM integration)
# Clone repository
git clone https://github.com/snowfire-gtc/Proxima-Centauri.git
cd proxima
# Build and install
./install.sh install
### Testing
``` bash
# Run compiler tests
cd proxima/build
ctest
# Run IDE tests
cd centauri/build
ctest
# Run integration tests
./run-tests.sh- 1. Стиль Matlab для блоков кода (end вместо {})
- 2. Типы single/double, nan, inf, pi, pi2, exp
- 2.1. Тип time с форматированием
- 3. Типы int4, int8, int16, int32, int64, int
- 4. Тип bool (true/false)
- 5. Вектора vector
- 5.1. Типы point2, point3, point4
- 5.2. Типы matrix22, matrix33, matrix44, matrix34
- 6. Матрицы matrix
- 7. Тип collection с заголовками
- 7.1. Пропуск операторов перед окончанием коллекции
- 8. Тип string
- 9. Тип char
- 10. Конкатенация столбцов [a, b]
- 11. Конкатенация строк [a,, b]
- 11.1. Индексация с 1
- 12. Тип layer, конкатенация [a,,, b]
- 13. Вектор через :, транспонирование '
- 13.1. Индексация с :
- 13.2. Преобразование матрицы в вектор [:]
- 13.3. Поэлементные операции с .
- 13.4. Автоматическое распространение размерностей
- 13.5. Линейная индексация
- 14. Преобразование char в string
- 15. Тип type, функция type()
- 15.1. Преобразование типов (style)
- 15.2. Тип void
- 16. Обязательные и опциональные аргументы функций
- 17. Объявление ядер GPU (parallel)
- 17.1. Передача данных GPU<->CPU
- 18. RTTI для GUI
- 19. Доступ к полям через .
- 20. Формат объявления переменных
- 21. Формат функций
- 22. Тип auto для функций
- 22.1. Множественные возвращаемые значения
- 22.2. Ключевое слово assigned
- 22.3. Анонимные функции
- 23. Формат класса (public/protected/private)
- 24. Перегрузка методов
- 24.1. Метод как поле класса
- 24.2. Тип method
- 25. Интерфейсы для преобразования типов
- 25.1. Переменные нескольких типов
- 26. Конструкция arguments для валидации
- 27. Стандартные функции валидации
- 28. Форматированный print
- 28.1. Опция level для print
- 29. Print в файл
- 30. Сериализация write/read
- 31. Многострочные комментарии с номерами
- 32. RTTI через rtti()
- 33. Диалог настройки через rtti.show()
- 34. Логические операции (!, !=, ==, ===, &, |, %, etc.)
- 35. Бинарные операции (!!, &&, ||, %%, <<, >>)
- 36. Дополнительные операции (%, ^, .^, , ?:)
- 37. Директивы (include, exclude, namespace, using, define)
- 37.1. Вложенность модулей
- 38. Один модуль в одном файле
- 38.1. Namespace для группы модулей
- 39. Нет заголовочных файлов
- 40. Флаги компиляции в формате collection
- 40.1. Ограничения наборов команд
- 41. Комментарии в файле сборки
- 42. Упрощённый синтаксис файла сборки
- 42.1. Манифест приложения
- 43. Отладочные функции (dbgstop, dbgprint, dbgcontext, dbgstack)
- 44. Интерфейс GEM
- 45. Ключевые слова выполнения (if/for/while/do/switch)
- 46. Отображение через show() для всех типов
- 47. Сворачиваемые регионы #region
- 48. Без дополнительных ключевых слов в вызовах
- 49. Фреймворк тестирования (suite/test/assert)
- 50. Генерация документации из комментариев
- 51. Unicode переменные, case-sensitive
- 52. Формат вызова компилятора
- 53. Протокол IDE-компилятор (collection)
- 54. Не использовать JSON, использовать collection
- 54. Папка assets для данных приложения
- 1. Поддержка языка Proxima
- 2. Проект в отдельной папке
- 3. Модули .prx в папке src
- 4. build.rules в папке rules
- 5. design.rules в папке rules
- 6. ui.rules в папке rules
- 7. Редактирование множества модулей
- 8. Навигация (табы, поиск, стрелки, шорткаты, дерево)
- 9. Отладка (безусловные и условные точки останова)
- 10. Визуализация объектов (class, vector, matrix, layer, collection)
- 11. Панель инструментов редактора (6 групп кнопок)
- 11.е. 8 режимов отображения редактора
- 12. Строка состояния (позиция, статус, сохранение, время, ресурсы)
- 12. Консоль с 4 табами (build, errors, output, callstack)
- 17. Git интеграция
- 18. Auto-save каждые 5 минут в autosave/
- 19. Однократное сохранение после 5 минут бездействия
- 20. Пиктографическое меню (7 разделов)
- 21. Один проект в экземпляре IDE
- 22. Название IDE - Centauri
- 23. Qt6/C++
- 24. Простой, понятный, задокументированный код
- 25. Режимы (Edit, Runtime, Pause)
- 26. Схемы запуска (6 вариантов)
- 27. Минимальная нагрузка в режиме релиза
- 28. Лицензия GPLv3
- 29. LLM интеграция (LM-Studio API)
- 30. Многопользовательское редактирование
- 31. Сворачивание методов, классов, комментариев, регионов
- https://www.prxlang.ru (in development)