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

19.10.2021      54784

Разработчик из Польши Петр Фусик представил язык программирования Ć. Главная особенность технологии – возможность транслировать написанный код на С, С++, 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 528 19.10.21 13:30 Сейчас в теме
Ждем православный язык "Ъ" и транслятор языка 1С в "Ч", а затем и в перечисленные языки ))
2. Darklight 32 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 578 21.10.21 12:03 Сейчас в теме
Есть еще Haxe — высокоуровневый кросс-платформенный язык программирования с открытым исходным кодом, а также компилятор, с помощью которого можно создавать приложения и генерировать исходный код на разных языках программирования для разных платформ.
Оставьте свое сообщение

См. также

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

Новость ИТ-Новость

Пятничное: в России вступил в силу стандарт подготовки по дисциплине «спортивное программирование». В стандарт вошли требования к физическим показателям спортсменов и скорости набора текста.

16.02.2024    642    VKuser24342747    2       

1

Росстандарт утвердил протокол LoRaWAN для интернета вещей

Новость ИТ-Новость

Федеральное агентство по техническому регулированию и метрологии (Росстандарт) утвердило национальный стандарт протокола LoRaWAN RU, таким образом он получил официальный статус. Технология используется для беспроводной передачи данных между устройствами интернета вещей.

19.01.2024    424    VKuser24342747    0       

2

Новый закон откладывает на год вступление в силу изменений в порядок регистрации на сайтах

Новость Законодательство ИТ-Новость

12 декабря вступил в силу Федеральный закон, меняющий срок, к которому все владельцы сайтов должны внести изменения в порядок авторизации пользователей на сайте. Закон вводит переходный период до 1 января 2025 года.

20.12.2023    606    VKuser24342747    2       

1

Вышло крупное обновление для Android Studio

Новость Мобильные приложения ИТ-Новость

Новая версия Android Studio под номером 2023.1 получила имя Hedgehog. Появились возможности контролировать производительность приложений и управлять подключенными устройствами.

07.12.2023    717    VKuser24342747    2       

3

GitHub опубликовал результаты ежегодного исследования проектов с открытым исходным кодом

Новость GitHub ИТ-Новость

GitHub собрал данные об Open Source проектах в рамках ежегодного исследования Octoverse. Компания изучила географию репозиториев, используемые языки программирования и нейросети, а также активность сообщества.

15.11.2023    486    VKuser24342747    1       

2

Некоммерческие проекты смогут получить бесплатный доступ к GigaChat API

Новость ИТ-компания ИТ-Новость

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

01.11.2023    601    VKuser24342747    2       

3

Состоялся релиз свободной среды разработки Geany 2.0

Новость ИТ-Новость Программист

Вышла новая версия Geany 2.0. Обновление затронуло внешний вид программы, расширило поддержку файлов и сторонних проектов, добавило новые способы работы с кодом.

25.10.2023    691    VKuser24342747    0       

1

Минцифры подготовило критерии по выбору оператора реестра провайдеров хостинга

Новость Минцифры ИТ-Новость Роскомнадзор

Минцифры подготовило проект постановления, которое утверждает требования к организации, претендующей на статус оператора реестра провайдеров хостинга.

25.10.2023    356    VKuser24342747    0       

1

Минцифры составило алгоритм действий для компаний, у которых не работает VPN

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

Минцифры подготовило разъяснения для российских организаций, у которых возникли перебои в работе VPN-сервисов для клиентов и сотрудников из-за блокировки запрещенных ресурсов Роскомнадзором.

24.10.2023    611    VKuser24342747    0       

0

«Сбер» объявила о доступности SberLinux OS Server для российских компаний

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

«СберТех», дочерняя компания «Сбера», объявила о предоставлении доступа к собственной серверной операционной системе SberLinux OS Server российским компаниям. ОС включена в реестр отечественного ПО.

20.10.2023    825    VKuser24342747    0       

2

Минцифры внесло изменения в проект правил идентификации клиентов веб-хостингов

Новость Минцифры ИТ-Новость Роскомнадзор

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

18.10.2023    456    VKuser24342747    0       

1

Google выпустила финальную версию Android 14

Новость Android Google ИТ-Новость

Google выпустила новую версию мобильной ОС Android 14. Изменения затронули настройки внешнего вида и безопасности. Были расширены возможности камеры и инструментов для хранения данных.

12.10.2023    672    VKuser24342747    0       

1

Яндекс объявил об открытии исходного кода DataLens

Новость Аналитика ИТ-Новость Яндекс

BI-система Yandex DataLens теперь развивается в опенсорс. Код продукта выложен для всех на GitHub. Любой желающий сможет развернуть DataLens на своем железе и доработать его под свои сценарии применения.

03.10.2023    1368    ЕленаЧерепнева    1       

6

Роскомнадзор создаст реестр хостинг-провайдеров

Новость Минцифры ИТ-Новость Роскомнадзор

Минцифры подготовило несколько проектов постановлений, которые утверждают правила ведения реестра поставщиков хостинг-услуг, а также новые требования к провайдерам.

02.10.2023    561    VKuser24342747    0       

1

«СберТех» представил репозиторий GitVerse с ИИ-помощником для написания кода

Новость Импортозамещение ИТ-Новость Программист

«СберТех» начал прием заявок на тестирование веб-сервиса для публикации ИТ-проектов GitVerse. Платформа подходит для разработки программ с открытым и закрытым кодом.

26.09.2023    765    VKuser24342747    2       

1

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

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

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

18.09.2023    415    VKuser24342747    1       

1

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

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

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

01.09.2023    1261    VKuser24342747    4       

2

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

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

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

28.08.2023    642    VKuser24342747    0       

2

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

Новость ИТ-Новость

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

24.08.2023    1141    VKuser24342747    23       

2

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

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

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

24.08.2023    466    VKuser24342747    0       

1

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

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

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

22.08.2023    452    VKuser24342747    0       

1

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

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

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

17.08.2023    1137    VKuser24342747    0       

1

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

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

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

16.08.2023    649    VKuser24342747    0       

1

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

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

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

14.08.2023    987    VKuser24342747    5       

3

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

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

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

04.08.2023    547    VKuser24342747    0       

2