Разработчик создал язык Ć для написания кода на С, Python и JavaScript одновременно

19.10.2021      54677

Разработчик из Польши Петр Фусик представил язык программирования Ć. Главная особенность технологии – возможность транслировать написанный код на С, С++, Java, Python и другие языки.

Зачем нужен новый инструмент

Детали своего проекта по созданию Фусик опубликовал на GitHub. Программист использует в своей технологии транслятор cito, благодаря которому написанный на Ć код можно читать на C, C++, C#, Java, JavaScript, Python, Swift и OpenCL. По словам разработчика, его проект решает актуальную проблему – позволяет писать исходники, которые можно комфортно использовать на разных языках одновременно.

В качестве варианта использования Ć Фусик приводит пример с изобретением нового формата сжатия. Если реализовать его на новой технологии от польского разработчика, то через транслятор cito можно сгенерировать код, который смогут использовать программисты на C #, Java, Python и других языках.

Петр Фусик работает над созданием Ć как минимум с 2013 года, когда он впервые опубликовал на YouTube раннюю презентацию технологии. Почему для языка выбрано такое название и как оно читается, неизвестно. Апостроф над буквой С называется «акут», поэтому теоретически новый инструмент разработки может получить название «Си акут». Также буква Ć есть в польском алфавите и читается она примерно как русская «Ч».

Особенности нового языка

Автор проекта утверждает, что синтаксис Ć похож на C#. Для него вполне подходит стандартная подсветка синтаксиса C#, однако Фусик уверен, что технологию нельзя назвать ни клоном языка от Microsoft, ни его подмножеством. Ключевые различия, по словам разработчика, продиктованы необходимостью полностью автоматической трансляции кода на Ć в эффективный код C и JavaScript. Новый язык является объектно-ориентированным – большинство целевых технологий, с которыми он взаимодействует, тоже относятся к методологии ООП.

 

Пример кода на Ć

 

Еще одна особенность Ć – сведение к минимуму зависимостей от библиотек среды выполнения. К примеру, если программист выводит код для использования в приложениях на С, то он получит автономную пару файлов .c/.h с удобочитаемым кодом С99. Аналогичным образом трансляция работает и для остальных поддерживаемых языков, однако есть несколько исключений. Например, если программист при написании кода на Ć, использует коллекции List, Dictionary или SortedDictionary, то для вывода кода на C ему придется использовать библиотеку Glib.


Автор:
Аналитик


Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Hatson 521 19.10.21 13:30 Сейчас в теме
Ждем православный язык "Ъ" и транслятор языка 1С в "Ч", а затем и в перечисленные языки ))
2. Darklight 30 20.10.21 10:40 Сейчас в теме
Прочитал и подумал - зачем?
Ведь в программировании исходники играют далеко не самую важную роль. Куда важнее библиотеки платформы, и конечный код, непосредственно исполняемый платформой (правда у Python или JavaScript его - увы нет - там да - нужна трансляция - это проблема данных языков, хотя для JavaScript можно транслировать "asm.js " или в "WASM", а ещё есть байткод V8; на самом деле и Python тоже есть байткод)
Для решения кросс-платформенных задач есть LLVM и промежуточный язык IR - тут нужно отдельно писать бакэнд/фронтэнд компиляторы.
Увы LLVM не очень хорошо подходит для платформ с управляемой памятью, и для стековых виртуальных машин.
Куда правильнее было - развивать идею LLVM - сделать усовершенствованный IR - более высокоуровневый (как MS IL) - который далле уже можно было бы эффективно декомпилировать в байткод целевых платформ (а не в исходники).

Самое интересное - это как решается вопрос управление памятью. Ведь все названные ЯП (кроме С++) являются языками с менеджером памяти, а JavaScript и Python - ещё и ЯП с динамической типизацией.
Это всё, конечно можно обобщить - но встаёт тогда третий важный вопрос - что будет в итоге с производительностью.
С++ используют - когда нужна высокая производительность - наврядли результирующий код будет ей удовлетворять.
Боюсь - проблем будут и в других результирующих исходниках. А JavaScript и Python и так не обладают высокой производительностью

И последнее. Что-то я в исходном синтаксисе (приведённого примера) ничего особенного не замети - типичный C# - да, возможно где-то есть отличия: что-то просто недореализовано (синтаксис C# очень насыщенный фишками), возможно где-то что-то добавлено (для поддержки совместимости с разными ЯП) - но я не стал бы говорить, что Ć - это новый ЯП, скорее просто диалект C#.
Не буду говорить, что это плохо. C# - мощный язык. Хотя мне он не совсем нравится - как раз из-за наследия С++ - которое полностью перешло и в Ć.

Уж лучше бы Kotlin развивали. У него уже есть и компиляция в Java и в Native машинный-код, и трансляция в JavaScript. Не так уж сложно туда же добавить трансляцию в Python и в .NET IL.

Но это всё-равно не сделает код кросс-платформенным (по среде исполнения) - всё-равно всё упрётся в разные библиотеки - а раз так - какой в этом смысл?

Если уж делать новый ЯП - то делать его революционным - чтобы в нём было что-то что привносит существенную пользу в процесс разработки в процесс исполнения.

Вот как я пропагандирую делать ЯП императивно-декларативным - чтобы на нём описывать лишь обобщённые алгоритмы (не вникая в детали реализации инструкций и функций той или иной платформы и её библиотек) - а уже умный AI -компилятор должен понять что реально нужно сделать - и сгенерировать соответствующий код под целевую платформу обладая знаниями о доступных библиотеках на этой целевой платформе! В том числе проведя его глубокую оптимизацию и , если надо, распараллеливание, и клиент-серверную адаптацию.
Это не простая задача - совмещающая в себе и машинное обучение и алгоритмы оптимизации и параллельного исполнения. Это достойная задача для развития ЯП второй половины XXI века
3. ksnik 566 21.10.21 12:03 Сейчас в теме
Есть еще Haxe — высокоуровневый кросс-платформенный язык программирования с открытым исходным кодом, а также компилятор, с помощью которого можно создавать приложения и генерировать исходный код на разных языках программирования для разных платформ.
Оставьте свое сообщение

См. также

ИП и юрлица смогут использовать смартфон для создания и замены электронной подписи

Новость Новость ФНС Цифровая подпись

ФНС внесла изменения в правила оформления электронной подписи руководителя организации и ИП. Станет возможным продлевать ее и записывать при помощи мобильного устройства.

18.09.2023    188    VKuser24342747    1       

1

Журнал IEEE Spectrum опубликовал рейтинг популярности языков программирования

Новость Новость Языки программирования

Журнал Института инженеров электротехники и электроники IEEE Spectrum подготовил рейтинг самых популярных языков программирования в 2023 году. Статистика разделена на три категории.

01.09.2023    695    VKuser24342747    4       

2

В бета-версии Microsoft 365 появилась поддержка языка Python для Excel

Новость Новость Языки программирования

С помощью библиотек и средств визуализации Python можно будет манипулировать данными Excel, а затем использовать полученные результаты в формулах, диаграммах и сводных таблицах.

28.08.2023    261    VKuser24342747    0       

2

Специалисты Калифорнийского университета установили, что боты справляются с CAPTCHA лучше, чем люди

Новость Новость

Международная группа исследователей изучила эффективность тестов CAPTCHA. Ученые пришли к выводу, что технология больше мешает людям, потому что боты научились с ней справляться.

24.08.2023    702    VKuser24342747    23       

2

Google Chrome начнет поддерживать квантово-устойчивые алгоритмы шифрования

Новость Google Безопасность Новость

В версии Google Chrome 116 появится поддержка алгоритмов шифрования, устойчивых к попыткам дешифрации при помощи квантовых вычислений. Технология объединяет преимущества классической и инновационной криптографии.

24.08.2023    273    VKuser24342747    0       

1

В реестр российского ПО включен первый комплекс обработки больших данных

Новость Импортозамещение Минцифры Новость Реестр ПО

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

22.08.2023    277    VKuser24342747    0       

1

Microsoft внедрила новые функции в GitHub Copilot и анонсировала Windows Copilot

Новость GitHub Искусственный интеллект

ИИ-помощник для разработчиков GitHub Copilot теперь не только в реальном времени анализирует код, предлагает варианты для его улучшения и помогает найти решение проблем в разработке, но и  показывает ссылки на репозитории, из которых взят код. 

17.08.2023    602    VKuser24342747    0       

1

В JetBrains разработали ИИ-помощника для аналитиков данных

Новость Аналитика Искусственный интеллект

JetBrains представила нейросеть Ask AI для онлайн-блокнота Datalore. Виртуальный ассистент способен генерировать код на нескольких языках, предлагать доработки и упрощать процесс аналитики данных. 

16.08.2023    232    VKuser24342747    0       

1

Исследование: ChatGPT дает неправильный ответ на половину вопросов о программировании

Новость Искусственный интеллект Новость

Чат-бот OpenAI ошибается в 52% случаев, когда отвечает на вопросы по программированию. Однако делает это так убедительно, что пользователи не замечают ошибки. 

14.08.2023    541    VKuser24342747    4       

3

Минцифры проведет эксперимент по цифровизации «жизненного цикла» госслужащего

Новость Минцифры Новость

Минцифры подготовило постановление о проведении эксперимента по внедрению ИТ в управление «жизненным циклом» госслужащего. Ведомство намерено автоматизировать все этапы работы сотрудников госструктур.

04.08.2023    383    VKuser24342747    0       

2

Доступна новая версия компилятора Cython 3.0

Новость Новость Языки программирования

Спустя пять лет разработки вышел релиз компилятора для языков программирования Python и Cython – проект Cython 3.0. Он позволяет транслировать код Python в представление на C/C++.

28.07.2023    812    VKuser24342747    0       

2

«Сбер» открыл доступ к двум нейросетям для генерации текста

Новость Искусственный интеллект Новость

«Сбер» предоставил свободный доступ к языковой модели ruGPT-3.5, предназначенной для генерации текста на русском языке. Кроме того, стала доступна нейросеть mGPT, поддерживающая 61 язык, включая языки СНГ и малых народов России.

25.07.2023    569    VKuser24342747    0       

2

Технология передачи данных при помощи света Li-Fi получила стандартизацию

Новость Новость

Технология Light Fidelity (Li-Fi) использует вместо радиоволн кванты света. С ее помощью можно достичь гораздо более высокой скорости передачи данных, но радиус действия сильно ограничен.

20.07.2023    514    VKuser24342747    0       

1

Госдума одобрила законопроект о цифровом рубле

Новость Банки Новость Цифровая экономика

Госдума приняла в третьем чтении законопроект, который утверждает в России новое средство расчетов – цифровой рубль. За выполнение операций с валютой отвечает Банк России. Первые расчеты будут запущены уже в 2023 году.

14.07.2023    904    VKuser24342747    15       

1

В России будет запущена цифровая платформа для выплаты социальных пособий

Новость Новость Социальный фонд России

Подписан закон, регулирующий запуск государственной системы «Единая централизованная цифровая платформа в социальной сфере» (ГИС «ЕЦП»). Она необходима для автоматического начисления соцпособий.

14.07.2023    1717    VKuser24342747    1       

2

GitLab начала открытое тестирование ИИ-ассистента для написания кода

Новость GIT Искусственный интеллект Новость Языки программирования Программист

GitLab представила собственную нейросеть Code Suggestions, способную генерировать код по запросу на естественном языке. ИИ-помощник поддерживает работу с 13 языками программирования.

10.07.2023    846    VKuser24342747    0       

1

GitHub представил новую версию Enterprise Server под номером 3.9

Новость GitHub Новость

GitHub Enterprise Server 3.9 вышел в публичный доступ. Обновление затронуло функции для совместной работы, обеспечения безопасности и управления проектами.

07.07.2023    753    VKuser24342747    0       

3

GitHub выложил в общий доступ инструмент для контроля разрешений Actions

Новость GitHub Новость

GitHub представил бета-версию action-permissions – инструмента, который позволяет отслеживать права доступа для рабочих процессов Actions. Система подскажет, какие разрешения должны быть для успешного запуска.

06.07.2023    474    VKuser24342747    0       

1

Минцифры хочет создать центры тестирования российского софта

Новость Импортозамещение Новость Минцифры

Минцифры планирует стимулировать создание центров тестирования совместимости российских программ с российским оборудованием. На данный момент проект находится на стадии обсуждения – дата его запуска пока неизвестна.

05.07.2023    614    user1915669    0       

1

«Ростелеком» разработал репозиторий для open source решений

Новость Open Source Импортозамещение Новость

«Ростелеком» представил собственный репозиторий «РТК-Феникс» для пакетов и библиотек с открытым исходным кодом. На площадке представлены только проверенные и популярные инструменты. 

27.06.2023    618    VKuser24342747    5       

1

В Windows 11 появится инструмент для ускорения сборки проектов

Новость Windows

Windows 11 начнет поддерживать новый формат хранилища – Dev Drive. Он повысит производительность системы при разработке программ, если используется в качестве репозитория или места хранения кэша пакетов. 

23.06.2023    585    VKuser24342747    1       

1

«Яндекс» начала принимать заявки от бизнеса на тестирование YandexGPT

Новость Искусственный интеллект Новость Яндекс

Yandex Cloud, облачная платформа «Яндекса», приступила к сбору заявок от бизнес-пользователей, желающих опробовать нейросеть для генерации текстов YandexGPT. Доступ получит ограниченное число участников. 

22.06.2023    691    VKuser24342747    2       

1

Stack Overflow опубликовал рейтинг языков программирования за 2023 год

Новость Рейтинг Языки программирования

Stack Overflow представил рейтинг языков программирования за 2023 год. В исследовании учитывали не только частоту применения языка, но и интерес разработчиков к нему. Также компания составила рейтинг платформ и ИИ-инструментов. 

20.06.2023    831    VKuser24342747    1       

2

Книжный клуб: лучшие книги по машинному обучению для новичков

Новость Искусственный интеллект Новость Конкурс

Дата-аналитик в Инфостарт и автор собственной книги об ML для начинающих Елена Капаца составила личный топ книг, которые помогут погрузиться в тему. 

19.06.2023    1897    fitwist    7       

37

«Сбер» открыл бесплатный доступ к симулятору для рекомендательных систем

Новость Open Source Искусственный интеллект Новость

«Сбер» предоставил разработчикам свободный доступ к библиотеке Sim4Rec, которая позволяет создавать рекомендательные системы на базе генеративного искусственного интеллекта.

16.06.2023    748    VKuser24342747    0       

1