The OpenNET Project / Index page

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

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

06.10.2020 15:29

Инженеры из Facebook опубликовали транскомпилятор TransCoder, использующий методы машинного обучения для преобразования исходных текстов с одного высокоуровневого языка программирования на другой. В настоящее время предоставлена поддержка трансляции кода между языками Java, C++ и Python. Например, TransCoder позволяет преобразовать исходные тексты на Java в код на Python, а код на Python в исходные тексты на Java. Наработки проекта реализуют на практике теоретические изыскания по созданию нейронной сети для эффективной автоматической транскомпиляции кода и распространяются под лицензией Creative Commons Attribution-NonCommercial 4.0, разрешающей применение только для некоммерческих целей.

Реализация системы машинного обучения построена на базе Pytorch. Для загрузки предложены две готовые модели: первая для трансляции C++ в Java, Java в C++ и Java в Python, а вторая для трансляции C++ в Python, Python в C++ и Python в Java. Для обучения моделей использовалась исходные тексты проектов, размещённых на GitHub. При желании модели трансляции могут быть созданы и для других языков программирования. Для проверки качества трансляции подготовлена коллекция unit-тестов, а также тестовый набор, включающий 852 параллельных функции.

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

Исследователями использована архитектура нейронной сети "Transformer" для моделирования последовательностей, в которой рекуррентность заменена "вниманием" (seq2seq model with attention), что позволяет избавиться от некоторых зависимостей в вычислительном графе и распараллелить то, что раньше не поддавалось распараллеливанию. Для всех поддерживаемых языков применяется единая общая модель, при тренировке которой используются три принципа - инициализация, моделирование языка и обратный перевод.



  1. Главная ссылка к новости (https://github.com/facebookres...)
  2. OpenNews: Google представил Grumpy, транслятор кода Python на язык Go
  3. OpenNews: Facebook открыл код транслятора из языка Hack в PHP. Обновление PHP 5.6.3, 5.5.19 и 5.4.35
  4. OpenNews: Реализация языка Python на JavaScript и транслятор кода Python в JavaScript
  5. OpenNews: Система машинного обучения для синтеза типового кода на языке Java
  6. OpenNews: GitHub открыл наработки по применению машинного обучения для поиска и анализа кода
Лицензия: CC-BY
Наводку на новость прислал Аноним
Тип: Программы
Короткая ссылка: https://opennet.ru/53839-transcoder
Ключевые слова: transcoder, ai
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (158) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Козлетто (?), 15:45, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Вот бы весь JS и Rust он бы в С или ассемблер преобразовывал. Особенно актуально для КолибриОС
     
     
  • 2.2, ИмяХ (?), 15:49, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +119 +/
    Вот хорошо бы такую штуку, которая С++ переводит в машинный код.
     
     
  • 3.6, Аноним (6), 15:54, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Это называется "компилятор".
     
  • 3.10, InuYasha (??), 15:59, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +11 +/
    :D :D :D
    спасибо, улыбнул )
     
  • 3.57, Аноним (57), 19:22, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –6 +/
    >Вот хорошо бы такую штуку, которая С++ переводит в машинный код.

    Есть такая штука, называется g++.

     
  • 3.142, Аноним (-), 19:43, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вспоминается одна старая, но годная статья, затрагивающая тему крайне низкого качества исходного кода программных продуктов и нежелания программистов погружаться решение возникающих проблем. Цитирую близко к смыслу: когда я вижу, что качество кода проверено искусственным интеллектом, я с ужасом понимаю, что этот код даёт тормозящее, висевшее, прожорливое и уродливое программное обеспечение.
     
     
  • 4.166, Аноним (166), 01:40, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Что значит с ужасом? Радуйся, для тебя есть работа. Не будь быдлокода с голоду бы помер.
     
  • 2.7, НяшМяш (ok), 15:55, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Хотя бы для JS - его как за баней уже.
     
  • 2.48, Anonim (??), 18:08, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    А что не на фортран? Или на фортране Линус, идол опен нета не кодит?
     
  • 2.67, Аноним (67), 21:12, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    JS послдние годы чет мало используют, а вот транслятор TS было бы неплохо иметь.
    А то язык есть, а транслятора нет.
     
     
  • 3.160, Георгий (??), 13:49, 09/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то есть, но не уверен, насколько он корректный.
    https://github.com/andrei-markeev/ts2c
     
  • 3.161, Георгий (??), 13:55, 09/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Можно попробовать JS перевести в C. Потом C скормить транскодеру как C++ и получить джаву/питон.
     
  • 2.86, Аноним (86), 22:55, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Вот бы весь ... Rust он бы в ... ассемблер преобразовывал.

    есть такая программа, называется rustc

     
     
  • 3.92, DerRoteBaron (ok), 01:20, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    как бы так можно и в C преобразовать: для LLVM IR есть бэкенд, генерирующий код на C. Правда неэффективно, но все равно лучше, чем C2Rust
     

  • 1.3, Аноним (3), 15:50, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +17 +/
    Вот уж где мракобесие и антинаучная ересь. Что уж сразу не с естественного языка в x86?
     
     
  • 2.5, Oxyd76 (?), 15:53, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Не подсказывайте! ;-)
     
     
  • 3.15, n00by (ok), 16:04, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это уже есть.

    Идиома -- язык программирования, производный от Plain English https://osmosianplainenglishprogramming.blog
    ...компилирует в x86 исполняемые файлы Windows
    https://board.flatassembler.net/topic.php?t=21173

    P.S. автор очередного философского камня закрыл исходники, смотреть поздно.

     
  • 2.56, flkghdfgklh (?), 19:01, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > не с естественного языка в x86?

    Для этого есть программисты. Ты им на одном из человеческих языков задачу, а они на один из компьютерных переводят.

     
     
  • 3.71, iLex (ok), 21:35, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Программисты нужны не для того, чтоб перевести задачу с естественного языка на язык программирования. А чтобы эту самую задачу сформулировать, предварительно вытряхнув хоть какую-то конкретику из менеджера, который и сам толком не знает, чего хочет.
     
     
  • 4.94, flkghdfgklh (?), 01:48, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Задачу формулирует руководство через project manager'ов на человеческом языке, а программист ее переводит в готовое решение. Если программист формулирует задачу, то у тебя что-то в конторе не так
     
     
  • 5.104, Аноним (104), 04:48, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не у него в конторе, что то не так. Со всем миром, что то не так. Перекладывание работы менеджеров на программистов это общая тенденция.
     
  • 5.120, Skynin (?), 09:36, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Менеджеры не являются техническими специалистами, чтобы перевести задачу с общей... большой текст свёрнут, показать
     
  • 2.87, Ag (ok), 23:12, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    КОБОЛ желаете-с? ;)
     
  • 2.115, ryoken (ok), 08:18, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> x86

    ненужно, сразу в асм POWER.

     
  • 2.130, Урри (?), 12:33, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что студенты почитав пару статей в интернете с помощью тензорфлоу такого сделать не могут, а транслировать простые структуры в простые структуры (что вполне легко делается с помощью якк/бизон) - могут. Правда это не точно (нейросети не умеют точно(!) делать заданную работу - это заложено в самое понятие нейросети).

    Посему встает вопрос - "а нехрена"? Попытаться классифицировать непонятный обфусцированный метакод и сказать на каком он языке и что, приблизительно, пытается делать - это запросто. А переводить один компьютерный язык, не допускающий вольностей в другой компьютерный язык, не допускающий вольностей - не-а?

     

  • 1.4, Аноним (4), 15:52, 06/10/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –3 +/
     
     
  • 2.8, Аноним (8), 15:58, 06/10/2020 Скрыто модератором
  • +1 +/
     
     
  • 3.13, Аноним (13), 16:02, 06/10/2020 Скрыто модератором
  • –1 +/
     
     
  • 4.32, Michael Shigorin (ok), 16:58, 06/10/2020 Скрыто модератором
  • +5 +/
     
     
  • 5.93, rshadow (ok), 01:37, 07/10/2020 Скрыто модератором
  • +1 +/
     

     ....ответы скрыты модератором (4)

  • 1.9, Аноним (8), 15:59, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    Классное название! Очень инклюзивное! 🌈
     
     
  • 2.50, Стартаперсмузихлёб (?), 18:19, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это как трансниггер, только транскодер. Что же поделать, когда родился маркетологом-гуманитарием. А в душе я программист.
     
     
  • 3.60, анон (?), 19:45, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    В высшем обществе уже за то, что спутал программиста или программистку с транскодером, лишают социальных благ.
    Достаточно использовать абсолютно нейтральное предложение: "Как в новом апдейте программисты теперь чинят черный экран в гноме?", и ты гарантированно получаешь ответ, никак не связанный с линуксом и программированием, а про жендерные принадлежности, и почему такой анон, как я, должен пройти в биореактор.
     
     
  • 4.64, Денис (??), 20:10, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Где вы таких находите? Я сколько ни общался на гитхабе, все адекватные.
    В отличии от русских.
    Исключение: швед Fredrik Mellbin, автор VapourSynth. Но, если его не облаивать, отвечает нормально.
     
     
  • 5.144, IRASoldier_registered (ok), 20:10, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вообще на техфорумах в среднем у _них_ уровень токсичности сильно поменьше _нашего_. У нас вероятность нарваться на ответ "кури мануалы", "ниасилятор", "а зачем тебе вообще цуникримпель?" обычное дело. С откровенным убожеством сталкивался, да, на техподдержках - но что характерно, какой-нибудь индус или вьетнамец, хотя нифига не поможет, вежлив до последнего.
     
     
  • 6.150, анон (?), 14:28, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще на техфорумах в среднем у _них_ уровень токсичности сильно поменьше _нашего_.

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

     
  • 6.152, Аноним (152), 19:12, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще на техфорумах в среднем у _них_ уровень токсичности сильно поменьше _нашего_

    Нет. https://habr.com/ru/post/178747/

     
     
  • 7.155, IRASoldier_registered (ok), 19:40, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И так бывает. Никто не идеален. И есть места в ИХтернете, где можно общаться "без правил" и куда, ожидаемо, стекаются неадекваты. Но у нас такого больше и неадекваты чувствуют себя вольготно везде, часто полагая своё поведение нормой - "а чо? мы не какие-то там европиндосотолерасты! прямо, по-мужски разговариваем".

    Кстати, неплохо по ссылке заминусованный товарищ умывал любителей русского своеобразия.

     
     
  • 8.159, нафиг нужно (?), 08:23, 09/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    неплохо по ссылке заминусованный товарищ умывал любителей русского своеобразия ... текст свёрнут, показать
     
     
  • 9.162, IRASoldier_registered (ok), 22:14, 09/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    О, ещё один своеобразный ... текст свёрнут, показать
     
  • 5.153, Аноним (152), 19:17, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Где вы таких находите? Я сколько ни общался на гитхабе, все адекватные.

    Ага, напиши в любом github репо, где коммитит https://github.com/nodejs/node/pulls/addaleax фразу  "Hi guys". Тебя обольют грязью и попросят писать "Hi folks", ибо дамы тоже программируют.

     
     
  • 6.154, Аноним (152), 19:18, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не та линка, вот ее профиль - https://github.com/addaleax
     
     
  • 7.157, Аноним (152), 21:38, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Только эта дама не любит, когда называют дамой. Она ненавидит любой гендер, она типо над гендерами. Почитай ее твиттер, там кристально чистая ненависть к людям, которые не уважают ее третий гендер (к слову, местоимения she/her она тоже ненавидит). Их IT среда не менее токсичная, чем наша. Просто направление желчи немного в другое русло.
     
     
  • 8.158, Аноним84701 (ok), 01:04, 09/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да все нормально там с направлением Просто сравнивают обычно теплое с мягким,... большой текст свёрнут, показать
     
  • 4.143, IRASoldier_registered (ok), 20:06, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Бедные альтрайты. Столько фобий и так перепутаны с реальностью...
     
  • 2.62, Денис (??), 20:04, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Классное название! Очень инклюзивное!

    Транскодер у меня ассоциируется с видеоконвертером, а транспондер со спутником.
    Но у кого что болит..

     
  • 2.85, Аноним (85), 22:54, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я знал, что опеннетовцы без этого не смогу. Поэтому в оригинале я написал заголовок вроде "Транс-программист переводит код между языками программирования. Но есть нюанс."
     

  • 1.11, InuYasha (??), 16:01, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Двоякие чувства у меня по поводу этого проекта...
     
     
  • 2.106, Vkni (ok), 06:28, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну мертворожденное дело, ясен пень. В переводчиках программ с языка на язык главное - корректность. Это мы, собственно, по переводчикам на ассемблер знаем.
     

  • 1.12, Аноним (13), 16:01, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А в питон потому что программисты facebook больше ни на что кроме питона не способны. Да и то, даже на питон уже не способны, поэтому транслятор чтобы спокойно тырить чужой код выдавая за свой.
     
     
  • 2.14, НяшМяш (ok), 16:02, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну почему же, ещё у них есть много PHP.
     
     
  • 3.17, Аноним (17), 16:08, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А, ну это в корне меняет дело.
     
  • 3.146, IRASoldier_registered (ok), 20:16, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как будто в этом есть что-то плохое.

    Кстати, Facebook активно применяет Erlang, помимо прочего.

     
  • 2.39, заминированный тапок (ok), 17:33, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    зато если в примере убрать строчки с отдельными '{' и '}' то можно заметить, что код на C++ меньше, чем аналогичный код на питоне :-D
     
     
  • 3.79, niger (??), 22:19, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А это кого-то удивляет? Вроде и ежу понятно. Учитывая что скобки раставляют редакторы нынче сами.
     
  • 3.107, Vkni (ok), 06:29, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Там совершенно дикий, неидиоматический С++ переведён на такой же дикий, неидиоматический Питон. Garbage in, garbage out.
     

  • 1.16, Аноним (17), 16:08, 06/10/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –6 +/
     
     
  • 2.20, Аноним (20), 16:21, 06/10/2020 Скрыто модератором
  • –3 +/
     
     
  • 3.21, Аноним (17), 16:25, 06/10/2020 Скрыто модератором
  • –1 +/
     
     
  • 4.23, Аноним (20), 16:28, 06/10/2020 Скрыто модератором
  • –4 +/
     
     
  • 5.26, Аноним (26), 16:42, 06/10/2020 Скрыто модератором
  • –1 +/
     
     
  • 6.30, Аноним (20), 16:56, 06/10/2020 Скрыто модератором
  • +/
     
     
  • 7.45, Аноним (26), 17:59, 06/10/2020 Скрыто модератором
  • +1 +/
     
  • 5.31, Аноним (17), 16:58, 06/10/2020 Скрыто модератором
  • –1 +/
     
     
  • 6.41, Аноним (41), 17:48, 06/10/2020 Скрыто модератором
  • –1 +/
     
     
  • 7.44, ksjdjfgklsjdklgfj (?), 17:58, 06/10/2020 Скрыто модератором
  • +/
     
  • 7.80, niger (??), 22:25, 06/10/2020 Скрыто модератором
  • +1 +/
     
  • 2.40, Аноним (40), 17:34, 06/10/2020 Скрыто модератором
  • +/
     

     ....ответы скрыты модератором (11)

  • 1.18, Аноним (18), 16:17, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Python в C++

    Супер! Надо будет portage транслировать и скомпилять в бинарь.

     
     
  • 2.22, Аноним (22), 16:28, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Попытайся портировать его в nuitka уже сегодня.
     
     
  • 3.35, Аноним (35), 17:04, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    nuitka мутноватая вещь... Хоть и транслирует, но всё равно она тащит за собой горы питонных библиотек. Надо что-то такое, что будет еще заменять библиотечные вызовы одного языка на вызовы другого.
     
     
  • 4.55, Андрей (??), 18:55, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Надо что-то такое, что будет еще заменять библиотечные вызовы одного языка на вызовы другого.

    Действительно, ценность проекта получается на поиграться без их распознавания и замены на аналоги, имеющиеся в стандартной библиотеке языка, или популярной библиотеке (glib, logging, tracing...), или "самописные". И если проект с тестами, то ИИ мог бы спокойно поупражняться, до тех пор пока тесты будут пройдены. А вот если без тестов, тогда разработчики получили бы ещё один аргумент в пользу написания тестов.

    Эх, питон/джава в Си или хотя бы в Си++ только с нативными зависимостями. Вот это было бы здорово.

     
  • 2.70, Аноним (70), 21:26, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Надо вначале кому-то заморочиться и этот ТрансКодер транслировать в С++ из питона
     
  • 2.145, Дерьмократ (?), 20:11, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем?
     

  • 1.19, Аноним (19), 16:18, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > использующий методы машинного обучения для преобразование исходных текстов с одного высокоуровневого языка программирования на другой

    Даже поржать уже не хочется. Впрочем, оно конечно дешевле, чем юзать этих белковых)

     
     
  • 2.68, Аноним (67), 21:16, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну слушай сидят деньги идут сами собой с рекламы, а заниматься сколь нибудь серезным делом они не хотят, а хотят хайпа. Выпусти они новую версих хранилища на Rust все молча так пожмут усами и дальшей подут, а если в предложении будет что-то нашумевшее в сочетании с чем-то популярным, то они еще раз пропиарят свою уродливый продукт.

    С другой стороны у них все впереди они скоро подрастут поумнеют и смогут писать полезные и толковые и нужные программы. Так что дай немного времени на развитие.

     

  • 1.24, Аноним (26), 16:41, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    30 лет назад уже были проекты по переводу кода на Фортране в эквивалентный код на С. Однако качество такого перевода не устроило. Поэтому проще оказалось переписать всё на С вручную.
     
     
  • 2.27, Аноним (26), 16:45, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Добавление. "Всё" - это получилось примерно 100 тысяч строк кода на С.
     
  • 2.108, Vkni (ok), 06:32, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    f2c есть, до сих пор используется в разных местах.
     

  • 1.25, Фанатик (?), 16:41, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Для гибкости не хватает слоя трансляции гомоморфного кода - ГомоКодера
     
     
  • 2.28, Фанатик (?), 16:48, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Также для тех, кто использует только два языка программирования потребуется слой кеширования - BiCoder
     
     
  • 3.42, Аноним (41), 17:50, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А если ты pansexual или heteroflexible как быть? А если вообще nonbinary?
     
     
  • 4.123, Аноним (85), 10:21, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >nonbinary

    Для таких извращений нужна "Сетунь".

     

  • 1.29, Аноним12345 (?), 16:48, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, как происходит перевод с чистого си на питон ?
    Например, работа с указателями

     
     
  • 2.52, Аноним (52), 18:26, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    а это вообще возможно? понимая, что указатель может ползать где угодно внутри структур и типов.
     
  • 2.105, Аноним (104), 04:56, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну в JS же смогли перекодировать. Просто любой указатель у них это индекс управляемого массива. Одного, на всю программу.
     

  • 1.33, Michael Shigorin (ok), 17:00, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Это уже даже не TDD, а какой-то HDD (hype driven devopsment).
     
     
  • 2.97, Аноним (-), 02:10, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    ого, нам приоткрыли основной метод разработки альлинукс
     

  • 1.34, Маняним (?), 17:02, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На картинке даже не С++98, а С к которому зачем-то вместо printf-ов присобачили std::cout.
     
     
  • 2.38, Маняним (?), 17:32, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ЗЫ: Они бы показали как их чудо транскодер, вооружённый искусственным интелектом, переводит сам iostream хидер в джавапитон, - вот это была бы укатайка.
     

  • 1.36, Аноним (-), 17:07, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А оно хруст научится делать в си ? Очень была бы неплохая тулза чтоб не тащить гигабайты в систему.
     
     
  • 2.72, анонн (ok), 21:56, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А оно хруст научится делать в си ? Очень была бы неплохая тулза чтоб не тащить гигабайты в систему.

    Интересно, откуда вы гигабайты берете, если "самодостаточный" пакет ржавчины (с собственной версией LLVM, доками которых там на 200 МiB и сорцами) весит

    pkg rquery %n/%sh rust rust-nightly  
    rust/695MiB
    rust-nightly/494MiB

     
     
  • 3.77, Аноним (77), 22:12, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну даже пусть и не гигабайты. Но избавиться от лишних зависимостей тоже неплохо.
     
  • 3.81, Аноним (52), 22:31, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    0.7 ГБ... И это только 1 установочный пакет компилятора. 0.2 ГБ - доки, это десятки тысяч страниц, в многотомных энциклопедиях и то меньше.
     
     
  • 4.88, анонн (ok), 23:16, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 0.7 ГБ... И это только 1 установочный пакет компилятора.

    Выкинь сорцы и доки, будет 0.4 ГБ. Но никак не "гигабайты".
    > 0.2 ГБ - доки, это десятки тысяч страниц, в многотомных энциклопедиях и то меньше.

    И то ли дело с полгига qt5 доков?


     
  • 3.95, Аноним (-), 02:00, 07/10/2020 Скрыто модератором
  • –3 +/
     
  • 3.135, Аноним (-), 14:04, 07/10/2020 Скрыто модератором
  • –1 +/
     

     ....ответы скрыты модератором (6)

  • 1.46, x0r (??), 18:06, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как запускать кто-нибудь понял?
     
  • 1.47, Аноним (47), 18:07, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Берешь и все gcc через javac перенаправляешь ищу сторонников кто подскажет машинка уже тут https://github.com/Griggorii/java-8-oracle_linux_modification_engine_by_Griggo
     
  • 1.49, Anonim (??), 18:19, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем транслятор из с++ в питон не очень понятно. Но вот из питона в с++ это прямо бомба
     
     
  • 2.74, Аноним (77), 22:09, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Из Java в C++ тоже бомба. Тонны ынтерпрайзного кода скопились.
     

  • 1.51, ixrws (??), 18:20, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Полная хрень Впрочем любой кто более-менее серьёзно либо ковырялся в компилятор... большой текст свёрнут, показать
     
     
  • 2.84, Аноним (85), 22:48, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не придирайся. Качество - дело наживное.
     
  • 2.102, Ordu (ok), 04:02, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Прежде чем кидаться такими утверждениями о проделанной кем-то работе, стоит поин... большой текст свёрнут, показать
     
     
  • 3.112, myhand (ok), 07:38, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну-ну Че-т я не вижу кобола в списке этой приблуды, равно как и оценки стоимост... большой текст свёрнут, показать
     
     
  • 4.121, Ordu (ok), 10:04, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Фейсбук, как я понимаю, пилит эту штуку под свои задачи И в фейсбуке вряд ли ес... большой текст свёрнут, показать
     
     
  • 5.126, myhand (ok), 10:58, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Или в фейсбуке дядиньки просто работают Ну вряд-ли там новую CAS пилят, согл... большой текст свёрнут, показать
     
     
  • 6.128, Ordu (ok), 12:18, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А, тебе не приходилось переписывать код Процесс может быть организован по-разно... большой текст свёрнут, показать
     
     
  • 7.131, myhand (ok), 12:41, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Милое дело Тут я не копенгаген по части практической, но теоретически - машинна... большой текст свёрнут, показать
     
     
  • 8.138, Ordu (ok), 15:36, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я думаю, что такой компилятор можно написать, но он нагенерит тебе такой код, чт... большой текст свёрнут, показать
     

     ....большая нить свёрнута, показать (8)

  • 1.54, Аноним (54), 18:55, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    столько комментов и не заметили очевидной недоработки.
    последний кусок на яве обернут исключением, питоновский - нет. хотя делается это элементарно.
     
     
  • 2.65, Аноним84701 (ok), 20:50, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > столько комментов и не заметили очевидной недоработки.
    > последний кусок на яве обернут исключением, питоновский - нет. хотя делается это элементарно.

    Э-э,  объявлять "foo(bar) throws XYZException" для проброса исключения в питоне не нужно.

     
  • 2.147, Аноним (147), 21:21, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ни в питоне ни в с++ нет проверяемых исключений
     

  • 1.58, Аноним (57), 19:25, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Хочу исходные коды ядра Linux в C++ с использованием классов.
     
     
  • 2.61, Аноним (52), 20:02, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хочу забивать гвозди молотком розового цвета!
     
     
  • 3.100, Ordu (ok), 03:08, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Тебе подсказать, где продаётся розовая краска, или чё?
     
  • 3.165, Аноним (166), 01:37, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А почему такое угнетение гвоздей?! Это гвозди должны забирать молоток для социальной справедливости.
     
  • 2.69, Аноним (67), 21:21, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема в том, что классы это дополнительная информация которой в оригинальном коде нет и этот транс кодер взять эту архитектуру ниоткуда не сможет, так что уровень этого инструмента пословный String Replace перевод. Короче Facebook опозорились и жалко что нет достаточно крутого издания или СМИ которые могли бы обьяснить что ханяты они херней. Вообще такое ощущение, что уровень СМИ он как бы идет с отставанием на 70 лет от актуального разития технологий.
     
     
  • 3.132, Аноним (57), 13:29, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не совсем всё грустно. Можно было бы многочисленные ядерные структуры с указателями на функции заменять на абстрактные базовые классы.
     
  • 3.137, Аноним (137), 14:29, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Т.е. ты знаешь нишу на миллион долларов и даже не пытаешься ее занять? Странный ты или чего-то не договариваешь.
     
  • 2.83, sukaslayer (?), 22:39, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    хочу исходники ядра на питоне!
     

  • 1.59, user90 (?), 19:35, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Опачки! Как только я слышу про машинное обучение, то сразу понимаю, что попахивает лажей!)) Не отвергаю эту технологию, только вот применима она лишт для:
    1) тупых рутинных операций,
    2) с вероятностным результатом "ответа",
    3) опирающихся на проработанный матаппарат.
    И как это они хотят впендюрить сюда написание кода??
     
     
  • 2.63, Аноним (52), 20:05, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Большую часть ошибок ... удаётся устранить через добавление ограничений ... что генерируемые функции будут синтаксически корректны.

    Большую часть ошибок? А остальные?! Вот так вот... Даже синтаксически могут остаться ошибки, не говоря уж про семантику.

     
  • 2.73, Аноним (77), 22:05, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Но квантовый компьютинг он тоже с вероятностным результатом ответа.
     
     
  • 3.76, Аноним (52), 22:12, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Про квантовые компы: это то же самое, что моделировать кирпич кирпичом.
     
  • 3.113, myhand (ok), 07:44, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Там ответ можно относительно легко _проверить_.  На классическом компьютере или даже вручную.

    Здесь - ты легко проверить можешь что-то тривиальное.  Т.е. канпелицца, ай нет.  А
    потом ловить баги в рантайме, которые неизвестно когда проявятся...

     

  • 1.66, Аноним (66), 20:56, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    С ошибками переводит 1:1 или абы как?
     
     
  • 2.75, Аноним (52), 22:09, 06/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Большую часть ошибок ... удаётся устранить ... что генерируемые функции будут синтаксически корректны.

    Получается, остаются даже синтаксические ошибки!

     

  • 1.78, Аноним (78), 22:17, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Гвидо не тормозит.
     
  • 1.82, Аноним (85), 22:38, 06/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Исследователями предложена новая архитектура нейронной сети "Transformer"

    Она не новая, она была предложена в 2017 году другими исследователями в работе Attention is all you need. Просто state of the art - лучшие нейросети на данный момент используют её.

     
  • 1.89, Аноним (-), 00:31, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Перевод будет плохой - иерархии исключений (выше про них уже вспоминали) в разных языках не совпадают. А значит - не ясно на каком именно catch-е в результирующем языке нужно будет "обрабатывать исключение". А это значит - что перевод будет не эквивалентный. Итого - для мелких и неважных поделий конечно сойдёт.
    ЗЫ а ошибки исправлять оно сможет? ;-)
    ЗЫЫ хмммм, а может подкинуть идею PVS Studio(они тут вроде публиковались)? пусть добавят кнопку "Fix it" для части своих диагностик
     
     
  • 2.90, Аноним (-), 00:38, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> не ясно на каком именно catch-е в результирующем языке нужно будет "обрабатывать исключение"

    не ясно не только ГДЕ его обрабатывать, но и КАК

     

  • 1.91, Аноним (91), 00:46, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    а слабо машкоды в с++ развернуть? ;)
     
  • 1.99, Аноним (99), 02:37, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Благодаря этому сразу видно какой питон уродливый.
     
  • 1.101, Аноним (101), 03:45, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    На минуточку, в C++ по стандарту есть VLA?
     
     
  • 2.103, Аноним (52), 04:25, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Какой только фегни нет в плюсах, а того, что работало в си - нету.
     
  • 2.124, Аноним (85), 10:27, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По факту есть. alloca называется.
     
     
  • 3.129, Аноним (52), 12:32, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    По факту все языки полные, но попы горят только у сплюснутых.
     
  • 3.134, Аноним (101), 13:44, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В крестовом примере на картинке не аллока, получается, обoсpались
     
     
  • 4.141, Аноним (141), 18:09, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это не VLA. VLA это когда int[] в описании структуры. int[] в параметре функции это тоже самое что int*. какой в опу alloca...
     
     
  • 5.148, Аноним (52), 01:07, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > int[] в параметре функции

    Ты, походу, слепой...

     
  • 5.151, Совершенно другой аноним (?), 18:55, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    там прямо вторая строчка C++ исходника:



    void worstFit(int blockSize[], int m, int processSize[], int n) {
      int allocation[n];
    ...
    }



    строка "int allocation[n];" это VLA
     

  • 1.109, Аноним (109), 06:36, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А можно также бинарный код windows транслировать в c++?
     
  • 1.114, Аноним (114), 08:15, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А кто потом будет фиксить баги в таком коде?
     
     
  • 2.116, Аноним (116), 08:28, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    дык, адназначна надо строить новый AI powered bugfixer в помощь к этой шняге
     

  • 1.117, Аноним (117), 08:43, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не, ну а чё, хорошая идея - сначала пишем на г..не, а потом преобразовываем в норм языки.
     
     
  • 2.118, myhand (ok), 08:51, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Garbage in - garbage out.
     

  • 1.119, Мечтатель (?), 09:31, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Так, глядишь, научатся проводить говнокод на любом яп в нормальный код на нем же. А там рукой подать до перевода: 1. Хочу чтобы на экране окошко вылезло. 2. Хочу чтобы в окошке написалось  Хело ворлд! 3. А ещё хочу чтобы эта штука за меня в ВК отвечала всякими умными словами и видеобложик вела с кучей лайков. 4. Хочу заработать кучу бабла ничего не делая!
     
     
  • 2.125, Аноним (85), 10:29, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >1. Хочу чтобы на экране окошко вылезло.
    >2. Хочу чтобы в окошке написалось  Хело ворлд!

    GPT-3 (гигантская сетка тоже на Transformer) уже это умеет.

     
     
  • 3.139, Трансформатор (?), 15:48, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Только за пределами hello world у неё это очень плохо получается.
     

  • 1.122, Аноним (122), 10:13, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ну ок. Пусть занимаются. Хоть наркотики по падикам не употребляют.
     
  • 1.127, Аноним (127), 10:59, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Скорее Лицокнига развивает trapCoder
     
  • 1.133, Аноним (57), 13:32, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вангую, скоро ИИ начнёт заниматься поиском уязвимостей в исходниках.
     
     
  • 2.140, Анонимсан (?), 17:12, 07/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > ИИ начнёт заниматься поиском уязвимостей в исходниках

    Это очень опасно. А вдруг ИИ начнёт эксплуатировать найденные уязвимости? Будет взламывать компьютеры хомячков, шифровать весь домашний архив с проном, а затем требовать выкуп в биткоинах? Как представлю себе это,- аж мурашки по коже.

     
     
  • 3.149, Аноним (-), 12:30, 08/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вы слишком хорошего мнение об ИИ. Обычно за любой любым страшным ИИ, сидит кучка обезьянок, только чубы торчат.
     

  • 1.136, Аноним (137), 14:21, 07/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Лучше русский переводить в джаваскрипт
     
     
  • 2.167, Аноним (166), 01:46, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вранье главного вора в правду
     

  • 1.164, Аноним (166), 01:31, 14/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Даешь такую же для exe и ipa. Обрезанную тётю Иду не предлагать!
     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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