Какой язык программирования является самым подобным английскому языку? [закрытый]

10
задан JasonMArcher 24 August 2014 в 01:55
поделиться

9 ответов

Если вы имеете в виду непоследовательность в применении правил с множеством причудливых крайних случаев и острых углов, которые могут нанести вред учащемуся, то очень мало языков программирования, более похожих на английский, чем C ++.

14
ответ дан 3 December 2019 в 13:29
поделиться

VB.NET (хотя ваш пример AppleScript превосходит VB.NET), SQL или COBOL (источник этого стиля). Lolcode похож на язык, но я рад, что английский на него не похож.

VB.NET

If MsgBox("The process will be started", MsgBoxStyle.OkCancel, "Title") = DialogResult.OK Then 
   'ok was clicked
Else
  'cancel was clicked
 End If

COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
    RECORD CONTAINS 55 CHARACTERS
    DISPLAY 'Hello, world'.
    STOP RUN.

SQL

SELECT * 
    FROM Book
    WHERE price > 100.00
    ORDER BY title;

Lolcode

ON CATURDAY
    IM IN YR BED
        I IZ SLEEPIN!!10
        VISIBLE "Z!"
    KTHX
KTHXBYE
3
ответ дан 3 December 2019 в 13:29
поделиться

Как насчет языка программирования Шекспира? Вот часть источника "hello world" из википедии :

               Act I: Hamlet's insults and flattery.
               Scene I: The insulting of Romeo.

[Enter Hamlet and Romeo]
Hamlet:
You lying stupid fatherless big smelly half-witted coward! You are as
stupid as the difference between a handsome rich brave hero and thyself!
Speak your mind!
You are as brave as the sum of your fat little stuffed misused dusty
old rotten codpiece and a beautiful fair warm peaceful sunny summer's
day. You are as healthy as the difference between the sum of the
sweetest reddest rose and my father and yourself! Speak your mind!
You are as cowardly as the sum of yourself and the difference
between a big mighty proud kingdom and a horse. Speak your mind.
Speak your mind!
[Exit Romeo]

Похоже, что подсветка кода здесь не работает. : /

4
ответ дан 3 December 2019 в 13:29
поделиться

Рискуя оказаться в ярости, я утверждаю, что подобие естественного языка - плохая цель для языков программирования. В частности, цель высказывания на естественном языке - повлиять на мир так, чтобы другие люди захотели поцеловать вас, а не ударить кулаком; это сильно отличается от цели высказывания на языке программирования, которое предназначено как недвусмысленное утверждение в четко определенной области, которую компьютер или другой человек может оценить. Может быть, лучше спросить: на каком языке программирования сложнее всего случайно выстрелить себе в ногу?

... что, конечно, совсем не то, о чем вы спрашивали.

9
ответ дан 3 December 2019 в 13:29
поделиться

Слышали ли вы о Supernova. Это естественный язык программирования. Даже вы можете создать окно в Supernova, просто сказав Я хочу окно и заголовок окна будет hello.

1
ответ дан 3 December 2019 в 13:29
поделиться

Может быть, Common Lisp? Макросы в Лиспе позволяют определять абстракции как "новые слова". Это настолько близко к псевдокоду или английскому языку, насколько вы хотите получить (потому что при описании программы в наших мыслях или обсуждениях мы используем много абстракций от механики конкретного языка).

Интересным примером являются анафорические макросы, которые Пол Грэм описывает в своей книге "О Лиспе". Анафорический макрос - это макрос, который связывает некоторое выражение с символом "оно" внутри его тела, так что мы можем легко ссылаться на него:

(aif (get-data) (do-something it)) 

В этой строке get-data - это функция, которая либо возвращает некоторый объект, либо nil. Если она возвращает данные, то они привязываются к переменной "it", которая обрабатывается функцией "do-something". Если возвращаемые данные равны nil, то условие не выполняется и пункт не выполняется.

Есть много других примеров анафорических макросов, таких как for loop, которые связывают переменную цикла, и так далее. Фактически, вы даже можете иметь макросы, которые генерируют анафорические макросы для вас.

-4
ответ дан 3 December 2019 в 13:29
поделиться

COBOL всегда считался «естественным языком». Вот выдержка со страницы 99 бутылок пива :

move spaces to buffer bb1                                 
move 1 to j                                               
divide i by 10 giving k remainder l                       
string bb8(k + 1) delimited space into bb1 pointer j      
if j > 1                                                  
   then move bb7(l + 1) to bb1(j + 1:)                    
   else move bb7(i + 1) to bb1                            
end-if

Конечно, «естественный язык» не всегда (часто?) Является достоинством среди языков программирования, где точность является приоритетом дня (и естественный язык почти всегда неоднозначен - добавление точности, требуемой языками программирования, только делает его многословным).

6
ответ дан 3 December 2019 в 13:29
поделиться

Ответ Шекспира напомнил мне Inform 7 , серьезный язык программирования для написания интерактивной художественной литературы. Вероятно, это язык, наиболее близкий к английскому из существующих и обладающий четко определенной семантикой.

Вот пример из Википедии:

"Hello Deductible" by "I.F. Author"

The story headline is "An Interactive Example".

The Living Room is a room. "A comfortably furnished living room."
The Kitchen is north of the Living Room.
The Front Door is south of the Living Room.
The Front Door is a door. The Front Door is closed and locked.

The insurance salesman is a man in the Living Room. "An insurance salesman in a tacky polyester suit. He seems eager to speak to you." Understand "man" as the insurance salesman.

A briefcase is carried by the insurance salesman. The description is "A slightly worn, black briefcase." Understand "case" as the briefcase.

The insurance paperwork is in the briefcase. The description is "Page after page of small legalese." Understand "papers" or "documents" or "forms" as the paperwork.

Instead of listening to the insurance salesman for the first time:

    say "The salesman bores you with a discussion of life insurance policies. From his briefcase he pulls some paperwork which he hands to you.";
    move the insurance paperwork to the player.

В этом примере используется обширная библиотека объектов, доступная пользователю. Но сам язык на самом деле является полным по Тьюрингу, и вы можете определять объекты с любым поведением в нем.

12
ответ дан 3 December 2019 в 13:29
поделиться

Ненавижу подключать свои собственные вещи (ну, не совсем), но 7Basic имеет довольно английский синтаксис:

BEGIN FUNCTION (variable AS INTEGER) AS STRING
    PRINT "Hello!"

    RETURN "return value!"
END FUNCTION
0
ответ дан 3 December 2019 в 13:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: