Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз языка программирования ShardScript 0.5

14.08.2026 22:56 (MSK)

Состоялся релиз ShardScript 0.5, встраиваемого строго типизированного скриптового языка программирования с C-подобным синтаксисом. Язык ориентирован на выразительность высокоуровневых конструкций и простоту интеграции. В состав релиза входят интерпретатор, обновлённая стандартная библиотека (STL), официально поддерживаемые сторонние модули и прототип LSP-сервера для Windows.Реализация ShardScript написана на языке С++ и распространяется под лицензией Apache 2.0. Бинарные сборки доступны для платформ Windows и Linux.

Среди возможностей языка: cтатическая типизация с выводом типов; C-подобный синтаксис; поддержка обобщённых типов (Generics), перечислений и функциональных цепочек обработки данных; стандартная библиотека (STL) с функциями для работы с файловой системой, вводом/выводом, структурами данных, датами и сериализации.

Среди изменений в новой версии:

  • Добавлена поддержка конструкции "switch". Поддерживается перегрузка оператора "== "для пользовательских типов внутри блоков "case".
    
       amount: int = 10;
       switch (amount)
       {
           case 1:  { println("Один"); }
           case 2:  { println("Два"); }
           default: { println("Больше"); }
       }
    
  • Добавлено выражение "switch" с поддержкой сопоставления типа через оператор "is". На данный момент не стоит ожидать значительного прироста производительности от использования "switch", так как реализация не оптимизирована и пока просто последовательно проверяет эквивалентность значений:
    
       animal: IAnimal = GetAnimal();
       println(switch animal
       {
           is Dog d => "Это собака: " + d.Woof,
           is Cat => "Это кот",
           _ => "Неизвестное животное"
       });
    
  • Добавлен синтаксис инициализации массивов с динамически задаваемым размером - "new T[size]".
  • В перечисления (Enums) добавлена поддержка метода ToString() и операции сравнения на равенство.
  • Для типа IEnumerable<T> реализованы LINQ-подобные методы: Select, Where и OrderBy для обработки данных в функциональном стиле.
  • В модуль работы со временем (shard.time) добавлены типы DateTime и TimeSpan, реализована поддержка UTC/Local, обеспечена конвертация эпохального времени, добавлены вычисления с датами и форматирование строк.
  • В потоки ввода/вывода добавлены классы StreamReader, StreamWriter, BinaryReader и BinaryWriter.
  • Реализована безопасная генерация временных файлов (Path.CreateTempFile, Path.GetTempPath) и объединение путей через оператор деления (/).
  • В stdio метод input() теперь принимает строку-запрос ('input("Введите имя: ")').
  • Добавлен метод stdio.Dump<T>(obj) для форматированного вывода структуры объектов с подсветкой синтаксиса и защитой от циклических ссылок.
  • Для JSON реализована типизация через JsonNodeKind, свойства-геттеры (IsNull, IsObject, IsArray), явное приведение типов через оператор "as" и прямой доступ к полям.
  • Улучшено формирование трассировки стека (Stack Trace) при обработке исключений.


  1. Главная ссылка к новости (https://shardscript-lang.githu...)
Автор новости: Rikitav
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66080-shardscript
Ключевые слова: shardscript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (22) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 01:09, 15/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И что-там си-подобного, фигурные скобки?
     
     
  • 2.9, Rikitav (ok), 05:28, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Блоки кода в фигурных скобках, точки с запятой на конце выражений, C-подобные циклы for\while, вызов функций через 'print(10);'
     
     
  • 3.20, Аноним (20), 10:17, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Когда 18 летний учащийся (непонятно где) пытается хоть как-то показать фичи своего навайбкоженного недоязычка.
     

  • 1.2, Аноним (2), 02:14, 15/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Для типа IEnumerable<T> реализованы...

    Это интерфейс. К тому же его имя начинается с *I* не просто так

     
  • 1.4, БоссАнонимов (?), 03:36, 15/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Добавить .gitattributes, .gitignore и README.md
    > Добавьте файлы проекта

    Бро, объясни свои коммиты

     
     
  • 2.5, Rikitav (ok), 04:14, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я пушил через VisualStudio, это автоматически сгенерированные коммиты
     

  • 1.6, Джон Титор (ok), 04:49, 15/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Зачем перегрузка операторов?
     
     
  • 2.10, Rikitav (ok), 05:41, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем перегрузка операторов?

    Для того чтобы расширить синтаксические возможности ЯП и упростить тривиальные операции на структурах. А почему вы спрашиваете? У перегрузки операторов есть какаято проблема?

     
     
  • 3.12, Брат Анон (ok), 09:04, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В том-то и проблема, что есть. Ломает семантику.
     

  • 1.7, Джон Титор (ok), 04:59, 15/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем встраиваемый язык? Почему оно чуть ли не полностью копирует C#? Зашел в исходный код - ну хоть это что-то поясняет - .net, c#. Т.е. неполный C# написан на C#. Интересно.
    А релизы то где? https://github.com/shardscript-lang/ShardScript.NET/releases
    Тут пусто.
     
     
  • 2.8, Rikitav (ok), 05:24, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Зачем встраиваемый язык?

    Потомучто нацелен на скриптинг внутри хост-приложений, но ничего не мешает использовать его как standalone интерпретатор.

    > Почему оно чуть ли не полностью копирует C#?

    Потомучто вдохновлен C#

    > Зашел в исходный код - ну хоть это что-то поясняет - .net, c#. Т.е. неполный C# написан на C#. Интересно.
    > А релизы то где? https://github.com/shardscript-lang/ShardScript.NET/releases Тут пусто.

    То что вы смотрите - это незаконченый SDK для C#. Основной репозиторий, с кор библиотекой и интерпретатором, находиться [[https://github.com/Rikitav/ShardScript здесь]]


     

  • 1.13, ыых (?), 09:09, 15/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Главный вопрос: зачем?
    Если он не решает проблем других языков, он не нужен.
    Если он пишется для резюме - то кхм, ценность этой новости стремится к нулю
     
  • 1.14, aname (ok), 09:26, 15/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Если это тренировочный язык для углубления своих знаний в работах с интерпретатором- автор молодец, красава, и всё такое.

    В остальном, есть Lua, и гора других, уже готовых.

     
     
  • 2.23, Rikitav (ok), 11:07, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо! Язык действительно до какого-то времени был учебным проектом, но относительно недавно он перерос из личного проекта в инструмент, поэтому я решил привлечь немного внимания и собрать критики :)
     

  • 1.15, aname (ok), 09:28, 15/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Скриптовый язык написанный на C#

    Может проще PoSH взять?

     
     
  • 2.18, Dzen Python (ok), 10:01, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    OneScript тогда уже.
    Помершелл уже сейчас eq -нечитаемая -МногоСловнаяХиробундия | Получить-СловоДляОпеннет -ПисатьНаКоторой -Может | Установить-СловоОпНет -Только 0 -Мазохист
     
     
  • 3.22, aname (ok), 10:41, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > OneScript тогда уже.
    > Помершелл уже сейчас eq -нечитаемая -МногоСловнаяХиробундия | Получить-СловоДляОпеннет
    > -ПисатьНаКоторой -Может | Установить-СловоОпНет -Только 0 -Мазохист

    А вы буквы экономите чтобы раздать бедным? Вы против человекочитаемости команд? Ключи к вызову утилит, больше похожие на строки base64 лучше? Ну напили алиасы, чё, или что тебе мешает сделать из вменяемого вида комманд линуксподобное? Хочешь чтоб было как любят в линуксе- для этого есть Perl с регулярками. Воистину, дух линукса там максимальный.

    А ну и да, тебя кнопка табуляции забанила на твоей и не только клавиатуре?

    4% они не даром 4%

     
  • 2.26, Rikitav (ok), 11:35, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Скриптовый язык написанный на C#

    На C++

    > Может проще PoSH взять?

    У моего языка другая сфера применения, куда обычно PS не берут

     

  • 1.16, user1985 (?), 09:37, 15/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Уже есть Tcl, Guile и Lua. В чём преимущество ShardScript перед вышеперечисленными языками?
     
     
  • 2.19, Dzen Python (ok), 10:03, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    +1 язык (теперь 15 конкурирующих стандартов встроенных скриптовых языков)
     
  • 2.21, Аноним (20), 10:22, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если написать проект на таком языкн никто не сможет его поддерживать кроме автора. Даже ИИ.
     
  • 2.24, Rikitav (ok), 11:13, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Впервые слышу про первые два, но точно могу сказать почему я убежал от Lua, статическая типизация и богатый синтаксис
     

  • 1.17, Ok (?), 09:41, 15/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Молодцы. Можете глянуть nullc, PointerScript, kinx/kilite еще, тоже интересные проекты. Кстати аж зубы болят, как представляю процесс отладки лексера/парсера на цпп) В свое время заморочился сначала JIT, потом транспилером, чтобы парсер/лексер/аст-анализер на скипте сразу писать, если будете размышлять надо или нет - обязательно, процесс работы в разы ускоряется, да и бутылочные горлышки языка сразу начинают проявляться. Успехов короч)
     
     
  • 2.25, Rikitav (ok), 11:31, 15/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо!
    Да, вы правы, с лексером и парсером я настрадался достаточно X)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру