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

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

19.10.2021      43394

Разработчик из Польши Петр Фусик представил язык программирования Ć. Главная особенность технологии – возможность транслировать написанный код на С, С++, 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.



Источник: https://infostart.ru/journal/news/tekhnologii/razrabotchik-sozdal-yazyk-262-dlya-napisaniya-koda-na-s-python-i-javascript-odnovremenno_1536808/
Автор:
Александр Вашкевич Аналитик


Комментарии
В избранное Подписаться на ответы Сортировка: Рейтинг 1-го уровня
2. Darklight 27 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 века
1. Hatson 488 19.10.21 13:30 Сейчас в теме
Ждем православный язык "Ъ" и транслятор языка 1С в "Ч", а затем и в перечисленные языки ))
3. ksnik 564 21.10.21 12:03 Сейчас в теме
Есть еще Haxe — высокоуровневый кросс-платформенный язык программирования с открытым исходным кодом, а также компилятор, с помощью которого можно создавать приложения и генерировать исходный код на разных языках программирования для разных платформ.
Оставьте свое сообщение

См. также

VK совместно с Минцифры запустили магазин приложений RuStore

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

Компания начала бета-тестирование официального магазина приложений для Android. В маркетплейсе уже сейчас доступно более ста программ, часть из которых недоступны в Google Play.

вчера в 15:12    803    VKuser24342747    2       

В GitHub появилась нативная поддержка математических выражений в md-файлах

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

Команда GitHub рассказала о новой функции, которая позволяет записывать математические формулы в Markdown. Разработчики впервые попросили добавить эту возможность восемь лет назад.

26.05.2022    478    VKuser24342747    0       

Национальный удостоверяющий центр наладил выпуск TLS-сертификатов

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

Национальный удостоверяющий центр (НУЦ) предложил владельцам сайтов получить сертификаты безопасности с поддержкой технологии прозрачности. Они работают в российских браузерах.

25.05.2022    617    VKuser24342747    1       

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

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

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

25.05.2022    842    VKuser24342747    2       

Банк России добавил поддержку NFC-технологии в Систему быстрых платежей

Новость ИТ-новость Мобильные приложения Цифровая экономика

В Системе быстрых платежей (СБП) появилась возможность проводить бесконтактную оплату при помощи NFC-чипов смартфонов. Функция будет доступна при использовании приложения «СБПэй».

20.05.2022    3636    VKuser24342747    4       

В России начал работу отечественный магазин приложений NashStore

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

Приложение-маркетплейс для Android стало доступно для скачивания на официальном сайте. Магазин позиционируется как альтернатива Google Play.

17.05.2022    2292    VKuser24342747    9       

В России создадут единую систему хранения государственных данных

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

Минцифры приступает к разработке ГосДата.хаба, который будет хранить в себе информацию от всех государственных учреждений. В 2024 году проект должен быть полностью реализован, а в 2023 году система будет запущена в опытную эксплуатацию.

16.05.2022    2210    Senator_I    3       

GitHub до конца 2023 года полностью перейдет на двухфакторную аутентификацию

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

Представители ИТ-хостинга GitHub сообщили, что к концу 2023 года активные разработчики, зарегистрированные на платформе, должны подключить функцию двухфакторной аутентификации.

12.05.2022    4400    VKuser24342747    0       

В России создан алгоритм принятия решений о необходимости обновления критичного ПО

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

Центр кибербезопасности РФ подготовил рекомендации по обновлению программ, критически важных для бизнеса. Ведомство рассказало, в каких случаях следует избегать автоматического обновления ПО.

21.04.2022    2550    VKuser24342747    0       

ИТ-отрасль представила Минцифры список приоритетных направлений поддержки

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

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

15.04.2022    3008    VKuser24342747    1       

Для TLS 1.3 реализована поддержка российских стандартов шифрования

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

Реализация протокола TLS 1.3 с использованием российских защитных алгоритмов разработана компаниями «Криптонит» и «Криптоком». Применять его можно как расширение для OpenSSL 1.1.1.

16.03.2022    8506    VKuser24342747    1       

В GitHub добавили поддержку диаграмм

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

В репозиториях сервиса GitHub теперь можно использовать диаграммы Mermaid. Этот формат гипертекстовой разметки легко освоить, чтобы создавать наглядные и аккуратные схемы. Такие изображения будут понятнее ASCII-диаграмм из отдельных символов.

24.02.2022    9895    user1015646    0       

Финализирован список новых возможностей Java 18

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

Намеченный на 22 марта 2022 года релиз Java 18 находится во второй фазе стабилизации. В новой версии языка появится несколько возможностей в виде превью и инкубаторов для тестирования.

14.02.2022    8942    VKuser24342747    2       

В России разработали открытую операционную систему «Фантом» на собственном микроядре

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

Подавляющее большинство операционных систем, над которыми работают российские компании, создаются на ядре GNU/Linux. Возможно, у них наконец-то появится конкурент: DZ Systems представила ОС «Фантом», микроядро которой написано «с нуля».

02.02.2022    6465    user1015646    2       

Let's Encrypt отозвал 2 миллиона сертификатов из-за нарушений в коде

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

Поставщик HTTPS-сертификатов сообщил об обнаружении выпущенных ненадлежащим образом электронных документов. Ошибка произошла из-за исправлений в программном обеспечении.

02.02.2022    6280    VKuser24342747    0       

Разработчики представили три новые версии Python

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

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

01.02.2022    15492    user1015646    11       

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

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

Google продолжает попытки создать альтернативу файлам cookies при таргетировании рекламы. После критики технологии FLoC компания разработала другой сервис, который будет выяснять любимые темы пользователя.

01.02.2022    7482    VKuser24342747    0       

Ученые добились рекордной точности вычислений на квантовом компьютере

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

На квантовые компьютеры возлагают большие надежды. Ученые из Австралии, Голландии и Японии независимо друг от друга добилась на практике точности квантовых вычислений выше 99%.

31.01.2022    7835    user1015646    0       

Samsung разработала модуль биометрической аутентификации для смарт-карт

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

Samsung представила чип биометрической защиты, который может быть установлен в банковские карты. Разработка объединяет в себе различные элементы безопасности, ранее наносимые на саму карту.

28.01.2022    7609    VKuser24342747    0       

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

Новость Безопасность ИТ-новость Мобильные приложения Новости компаний

Apple в очередной раз перенесла сроки вступления в силу новых правил App Store. В них прописано новое требование для всех разработчиков: добавить в приложение возможность удалять аккаунт.

27.01.2022    11258    VKuser24342747    0       

Google назвала пять трендов машинного обучения в 2021 году

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

Google провела исследование, в котором озвучила ключевые направления развития индустрии машинного обучения (МО) в 2021 году. Компания ожидает в ближайшие годы научных прорывов в отрасли.

27.01.2022    17059    VKuser24342747    0       

Исходный код модели Facebook XLS-R выложили в интернет

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

Одна из самых мощных многоязычных моделей распознавания речи XLS-R теперь доступна всем разработчикам. Facebook опубликовала исходный код решения на GitHub и Hugging Face.

27.01.2022    7426    user1015646    0       

Компания OPPO подготовила концепцию устройств без аккумуляторов

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

Китайский производитель смартфонов OPPO опубликовал доклад, в котором представил идею зарядки IoT-устройств от сигналов мобильных телефонов, Bluetooth и сетей Wi-Fi.

26.01.2022    5621    VKuser24342747    2       

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

Новость ИТ-новость Минкомсвязь Цифровая экономика

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

24.01.2022    6817    VKuser24342747    0       

Visa разработала способ превратить почти любое устройство в POS-терминал

Новость ИТ-новость Новости компаний Онлайн-торговля

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

21.01.2022    8555    VKuser24342747    0