Существует ли язык программирования с семантикой, близкой к английской?

Большинство языков позволяют «настраивать» определенные части синтаксиса ( C ++ , C # ) и / или семантика, которую вы будете использовать в своем коде ( Katahdin , lua ). Но я не слышал о языке, который мог бы полностью определить, как будет выглядеть ваш код. Так разве Есть ли какой-то язык, который уже существует, который имеет такие возможности, чтобы переопределить весь синтаксис и определить семантику?

Пример того, что я хочу сделать, в основном взят из приведенного ниже кода C #:

foreach(Fruit fruit in Fruits)
{
  if(fruit is Apple)
  {
    fruit.Price =  fruit.Price/2;
  }
}

Я хочу написать приведенный выше код на моем идеальном языке следующим образом:

Check if any fruits are Macintosh apples and discount the price by 50%.

Преимущества, которые приходят мне на ум при поиске с точки зрения программиста на этом «воображаемом» языке:

  1. Очень ясно, что происходит (самоописательное) - это простой английский, в конце концов, даже ребенок поймет мою программу
  2. Скрывает все сложности, которые я должен написать на С #. Но почему я должен это знать?
    foreach(Fruit fruit in Fruits)
    {
      if(fruit is Apple)
      {
        fruit.Price =  fruit.Price/2;
      }
    }
    

    Я хочу, чтобы у меня была возможность написать приведенный выше код на моем идеальном языке следующим образом:

    Check if any fruits are Macintosh apples and discount the price by 50%.
    

    Преимущества, которые приходят мне на ум с точки зрения программиста в этом «воображаемом» языке:

    1. Это очень ясно что происходит (самоописательное) - это простой английский, в конце концов, даже ребенок поймет мою программу
    2. Скрывает все сложности, которые я должен написать на C #. Но почему я должен это знать?
      foreach(Fruit fruit in Fruits)
      {
        if(fruit is Apple)
        {
          fruit.Price =  fruit.Price/2;
        }
      }
      

      Я хочу, чтобы у меня была возможность написать приведенный выше код на моем идеальном языке, например:

      Check if any fruits are Macintosh apples and discount the price by 50%.
      

      Преимущества, которые приходят мне на ум с точки зрения программиста на этом «воображаемом» языке:

      1. Это очень ясно что происходит (самоописательное) - это простой английский, в конце концов, даже ребенок поймет мою программу
      2. Скрывает все сложности, которые я должен написать на C #. Но почему я должен это знать? операторы if, арифметические операторы и т. д., поскольку они уже реализованы

      Недостатки, которые я вижу для кодировщика, который будет поддерживать эту программу:

      1. Возможно, вы выразите эту программу иначе, чем я, поэтому вы не сможете получить все информация, которую я выразил в своем предложении
      2. . Программы могут быть довольно подробными и трудными для отладки, но если возможно даже приблизить этот тип синтаксиса выше, возможно, больше людей начнут программировать, верно? Я думаю, это было бы потрясающе. Я могу пойти на работу и просто написать эссе, чтобы нарисовать квадрат на winform следующим образом:

      Создайте форму с именем MyGreetingForm. Нарисуйте квадрат с серединой MyGreetingForm со стороной 100 баллов. В середине квадрата напишите «Привет! Нажмите здесь, чтобы продолжить» шрифтом Arial.

      В приведенном выше коде синтаксический анализатор должен предположить, что я хочу использовать Думаю, может, кто-то уже сделал что-то подобное? Или есть какое-то практическое бремя сложности для создания такого языка программирования в стиле эссе, которого я не вижу? Я имею в виду, что может быть хуже, если парсер не так хорош? - ваша программа выйдет из строя, поэтому вам придется перефразировать ее :)

12
задан Community 23 May 2017 в 12:00
поделиться