Wyvern: новый универсальный язык программирования, спонсируемый АНБ

    Университет Карнеги — Меллон при поддержке Агентства национальной безопасности США разрабатывает новый универсальный язык программирования Wyver (названный в честь мифологического драконоподобного существа о двух ногах). Предполагается, что он сможет заменить HTML, CSS, XML, Java и другие языки.

    Особенностью Wyver как инструмента, по словам исследователя-разработчика Джонатана Олдрича, является его способность предугадывать, на каком языке фактически пишет программист, основываясь на типах данных, которыми он манипулирует. Например, если Wyver определит, что программист работает с БД, то вероятней всего он делает это на SQL.

    АНБ же видит в этом языке возможность обеспечивать безопасность собственных ресурсов и сайтов американских компаний в силу того, что язык будет один. Так же Олдрич говорит, что «язык проектируется так, что бы помогать разработчикам быть максимально продуктивными, когда они пишут высоконадёжные приложения».

    На данный момент язык находится в стадии прототипа, примеры кода и рабочие материалы выложены на Github'е.

    via Motherboard.

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 20

      +69
      Каждый начинающий программист на Wyver пишет свою первую программу, которая вместо вывода строчки Hello World! открывает порты 3389, 22, 5900…
        +7
        Почему вместо? Я думаю ХеллоВорлд она вполне красиво выводит на экран используя всю мощь HTML, CSS, XML, Java и других языков. Но и про порты конечно тоже не забывает.
        0
        fixed
          +28
          Хорошая попытка, АНБ, но нет.
            +1
            Не взлетит.
              +38
              Новый язык сам предугадывает, когда можно включать вебкамеру у ноутбука, читать жёсткий диск и вызывать спецназ.
                +13
                image
                  +16
                  Сегодня он скрафтил отличное продолжение:
                    +4
                    120V есть, а 230 нету. А разъём прикуривателя где? Недостаточно универсально!
                      +7
                      image
                    +13
                    «Предполагается, что он сможет заменить HTML, CSS, XML, Java и другие языки.»
                    Я всегда думал, что html — это разметка страницы, а css — таблицы стилей
                      +4
                      Судя по примерам с гита, просто поменяли синтаксис java.
                        +2
                        Тут недавно была статья про генерацию json на C++ несколько необычным способом… Может, они так же «заменяют» html? Если постараться, то это можно даже суметь сделать удобным (ну, для одного человека).
                          –1
                          HTML+CSS полны по Тьюрингу (не то, чтобы это было хорошей идеей).
                            +19
                            as long as you consider an appropriate accompanying HTML file and user interactions to be part of the “execution” of CSS
                            Безумное допущение. Если считать действия пользователя частью системы для целей Тьюринг-полноты, то файл .txt тоже Тьюринг-полный: в нем можно написать «сделай бутерброд, жопа ленивая», а пользователь возьмет и сделает.
                          +1
                          One Wyvern to rule them all.
                            +3
                            названный в честь мифологического драконоподобного существа о двух ногах

                            Чтобы еще удачнее потроллить АНБ, надо было дописать сюда еще в конец «из HMM3».
                              0
                              Кто-нибудь в продакшене уже запускал?
                                +1
                                Куда спешить, если через полгода всё равно выкатят какой-нибудь Wyvern on Wings?
                                +1
                                «предугадывать, на каком языке фактически пишет программист, основываясь на типах данных, которыми он манипулирует. Например, если Wyver определит, что программист работает с БД, то вероятней всего он делает это на SQL.»

                                Что за «вероятней всего» и «предугадывать»? Суть там простая — по типу данных запускается кастомный парсер литерала для этого типа.

                                Типа:

                                let webpage : HTML = <html><body><h1>Results for {keyword}</h1>
                                <ul id="results">{to_list_items(query(db,
                                SELECT title, snippet FROM products WHERE {keyword} in title))}
                                </ul></body></html>
                                


                                Часть после "=" разбирается специальным кодом для html и определяется какой разбор запускать по типу (:HTML)

                                Нечто похожее есть в F# — type providers — только там обычно используется строковый литерал для встраивания кастомного языка

                                // reference the type provider dll
                                #r "RegexProvider.dll"
                                open FSharp.RegexProvider
                                
                                // Let the type provider do it's work
                                type PhoneRegex = Regex< @"(?<AreaCode>^\d{3})-(?<PhoneNumber>\d{3}-\d{4}$)">
                                
                                
                                // now you have typed access to the regex groups and you can browse it via Intellisense
                                PhoneRegex().Match("425-123-2345").AreaCode.Value
                                


                                Only users with full accounts can post comments. Log in, please.