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

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

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

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
52
задан 5 revs, 5 users 89% 1 May 2012 в 07:06
поделиться

49 ответов

В то время как не сам язык программирования, экономный язык стенографии XML (PXSL) делает XSL адской партией более человекочитаемый (и менее подробный!), чем он возможно уже:

 <doc keywords="x y z">          doc -keywords=<<x y z>>
  <title/>                        title
  <body id="db13">                body -id=db13
    This is text.                   <<This is text.>>
  </body>
</doc>
1
ответ дан Rahul 7 November 2019 в 08:56
поделиться

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

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

1
ответ дан Jeff Kotula 7 November 2019 в 08:56
поделиться

Это должно быть пробелом. Единственный язык программирования, где нет просто ничего для чтения: http://en.wikipedia.org/wiki/Whitespace_ (programming_language)

1
ответ дан Marc 7 November 2019 в 08:56
поделиться

Забавный. Предположите, что неграмотный, спрашивающий ", Является там человекочитаемой газетой?".

, Прежде чем можно будет считать что-то, которое необходимо учиться читать сначала.

1
ответ дан ThomasD 7 November 2019 в 08:56
поделиться

Visual Basic (и ОСНОВНЫЕ основанные языки в целом) о как близко к естественному языку, как Вы добираетесь. Я утверждал бы, что Python появляется достаточно близкий также. Используя их Вы можете делать свое чтение кода как structed английский язык, если Вы заботитесь достаточно, но не, нет никаких естественных английских компиляторов, потому что существует только слишком много неоднозначности там.

0
ответ дан Matthew Scharley 7 November 2019 в 08:56
поделиться

Основной был первый подход в том направлении, и как был показан в другом ответе, Perl также позволяет код, который это справедливо близко к естественному языку - если Вы игнорируете всю ту пунктуацию.

я просто считал очень интересное статья о том, как перевести латынь в Perl (для которого существует также модуль Perl).

Поэтому, если естественный язык имеет достаточно структуры, и Вы представляете достаточно ограничений для предотвращения двусмысленности, можно действительно программировать на (главным образом) естественном языке.

, Но действительно никто действительно не делает, потому что это является очень подробным, и трудно сделать и читаемый и точный.

0
ответ дан moritz 7 November 2019 в 08:56
поделиться

Почему Вы сделали бы это? Это недружелюбно машиной к нашему R2D2 в мозгу, который читает код в нас.

0
ответ дан yogman 7 November 2019 в 08:56
поделиться

Еще не видели ABC, упомянутую. Работавший с этим во время первой информатики года в Утрехтском университете и всегда думал, что довольно "человекочитаемый" (независимо от того, что это означает точно).

Вот является пример служебными словами для сбора набора всех слов в документе:

   HOW TO RETURN words document:
      PUT {} IN collection
      FOR line IN document:
         FOR word IN split line:
            IF word not.in collection:
               INSERT word IN collection
      RETURN collection
1
ответ дан peSHIr 7 November 2019 в 08:56
поделиться

Существует много больших DSLs (Предметно-ориентированные языки), которые читают очень как естественный язык.

Ярким примером является Starbucks. Вы могли записать DSL как это. Это использует Ruby, но могло быть сделано на многих различных языках. Преимущества для Ruby или Python состоят в том, что они - динамические языки, таким образом, можно использовать Утиный Ввод.



venti = Starbucks.new(:kind => :coffee, :size => :venti)
half_foam_venti = add_half_foam(venti)
serve(half_foam_venti)


Но я должен согласиться, что Ruby / Python мог бы быть самым близким из поля.

Кент

0
ответ дан 2 revs, 2 users 97% 7 November 2019 в 08:56
поделиться

В первые годы Microsoft на самом деле перевела WordBasic (со многих лет, известных как Visual Basic for Applications) для соответствия языку GUI. Конструкции как

If <condition> Then
  <something>
End If

в голландской версии Word, был бы введен и отображен как

Als <condition> Dan
  <something>
Einde Als

Конечно, в теории это помогло людям понять зарегистрированные макросы. Но я сомневаюсь, что те люди когда-либо смотрели бы на код для запуска с...

0
ответ дан Arjan 7 November 2019 в 08:56
поделиться

Я говорю что LOLcode для удобочитаемости:

HAI

У меня ЕСТЬ ITZ VAR "Hai der Werld", у меня ЕСТЬ КОНЕЦ

ВИДИМЫЙ VAR

КОНЕЦ GIMMEH

KTHXBYE

или

HAI

У МЕНЯ ЕСТЬ КОНЕЦ

ВИДИМЫЙ "Hai der Werld 2.0"

КОНЕЦ GIMMEH

KTHXBYE

"w/o gimmeh вещь только не лег бы спать в течение доли секунды", переходят к lolcode.com для moar информации

0
ответ дан EltaltlE 7 November 2019 в 08:56
поделиться

я думаю Возможно, вы имеете в виду функциональное программирование? я думаю, что F # - это 1., хотя мне как разработчику он кажется более сложным

0
ответ дан 7 November 2019 в 08:56
поделиться

Вам следует прочитать эссе Мартина Фаулера о Business-Readable DSL .

0
ответ дан 7 November 2019 в 08:56
поделиться

Раньше я мог "читать" объект OS / 360 запрограммировать талант, рожденный многочасовым анализом дампа в 2 часа ночи, когда менеджер OPs шагает взад-вперед.

Итак, я полагаю, что код ОБЪЕКТА считается читаемым человеком.

Основная проблема с кодом «естественного языка» заключается в том, что он может быть настолько неоднозначным. Английский особенно зависит от культуры, контекста и настроения, чтобы правильно интерпретировать сигнал. Вот почему юридические документы написаны на таком причудливом, неестественном языке, это единственный способ добиться какой-либо точности с английским.

Это было одной из больших ловушек COBOL. Интерпретация компиляторами 'IF A NOT = B OR C' была полной противоположностью интерпретации случайных читателей, то есть в C "! (A == B) || A == C", тогда как вы можете подумать, что это должно быть! (A = = B || A == C).

Другой большой проблемой была пунктуация. Ваш мозг «предварительно обрабатывает» знаки препинания, поэтому вы не «видите» их на осознанном уровне. Период '.' было жизненно важным в раннем COBOL, поскольку они разграничивали блоки кода, но отсутствующие или лишние точки было чрезвычайно трудно обнаружить. Это немного похоже на обнаружение '=' и '==' в C, только намного хуже.

0
ответ дан 7 November 2019 в 08:56
поделиться

PERL ; -)

-1
ответ дан 7 November 2019 в 08:56
поделиться

Windev - очень простой и понятный человеку язык. http://www.pcsoft.fr/windev/presentation.htm

0
ответ дан 7 November 2019 в 08:56
поделиться

Rebol Comes Close

0
ответ дан 7 November 2019 в 08:56
поделиться

Хотя я знаю, что COBOL (и ближе к нам ... SQL) - отстой, они были разработаны десятилетия назад. Я также думаю, что они воспользовались шумихой вокруг "английских" языков программирования, и не думаю, что они далеко зашли в правильном лингвистическом анализе. Я думаю, что в настоящее время можно программировать на АНГЛИЙСКОМ (естественном английском ... языке), если хорошие программисты соберутся вместе, проанализируют язык и заставят его работать. Это большой проект, но я уверен, что с учетом имеющихся у нас вычислительных мощностей это возможно. Другими словами, мне не нравится, как люди отказываются от идеи программирования на английском языке из-за COBOL. Cobol был одним из первых языков программирования, и его разработчики тогда решили взять за основу разговорный английский, потому что они не знали ничего лучшего, у них не было представления о предстоящих осложнениях, и они думали, что английский делает его знакомым, и возможно, это также хорошо смотрелось в маркетинговых материалах. Не думаю, что они очень старались заставить компилятор COBOL читать на естественном английском языке.Если в настоящее время были предприняты серьезные усилия, чтобы извлечь уроки из прошлого и создать надлежащую систему распознавания естественного языка, то я думаю, что это может сработать - через некоторое время (скорее всего, это вопрос лет). И если предположить, что было бы неплохо иметь возможность программировать на простом английском? Конечно, это должно быть самообучающееся (компьютер должен учиться на лету) и интерактивное (компьютер должен иметь возможность просить пользователя выбрать один из вариантов, если он запутался).

0
ответ дан 7 November 2019 в 08:56
поделиться

Вы смотрели Python?

1
ответ дан 7 November 2019 в 08:56
поделиться
Другие вопросы по тегам:

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