Есть ли язык программирования без структур управления или операторов? - PullRequest
9 голосов
/ 28 апреля 2010

Как Smalltalk или Lisp?

EDIT

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

     Java                 Python               
 if( condition ) {     if cond:           
     doSomething           doSomething     
 }                                         

Или

     Java                Python                  
 while( true )  {        while True:            
     print("Hello");        print "Hello"      
 }                                            

И операторы

 Java, Python
 1 + 2  // + operator 
 2 * 5  // * op

В Smalltalk (если я прав) это будет:

condition ifTrue:[
   doSomething
]

True whileTrue:[
   "Hello" print 
]
1 + 2 // + is a method of 1 and the parameter is 2 like 1.add(2) 
2 * 5 // same thing

Ответы [ 18 ]

1 голос
/ 28 апреля 2010

Как насчет ФРАКТРАН ?

FRACTRAN - это эзотерический язык программирования, полный по Тюрингу, изобретенный математиком Джоном Конвеем. Программа FRACTRAN - это упорядоченный список положительных дробей вместе с начальным положительным целочисленным вводом n . Программа запускается путем обновления целого числа ( n ) следующим образом:

  1. для первой дроби f в списке, для которого nf является целым числом, замените n на nf
  2. повторять это правило до тех пор, пока ни одна дробь в списке не выдаст целое число при умножении на n , затем остановится.

Конечно, в правиле 2 существует неявная структура управления.

0 голосов
/ 29 апреля 2010

Мне не совсем понятна концепция, но я думаю, PostScript соответствует критериям, хотя он вызывает все свои функции-операторы (так же, как LISP вызывает все свои операторные функции).

0 голосов
/ 29 апреля 2010

Как насчет Всякий раз ?

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

0 голосов
/ 28 апреля 2010

XSLT (или, как говорят некоторые, XSL) имеет управляющие структуры, такие как if и for, но в целом вы должны избегать их и иметь дело со всем, написав правила с правильным уровнем специфичности. Таким образом, управляющие структуры существуют, но подразумеваются тем, что делает механизм перевода по умолчанию: применять потенциально-рекурсивные правила.

For и if (и некоторые другие) существуют, но во многих ситуациях вы можете и должны обходить их.

0 голосов
/ 28 апреля 2010

APT - (автоматический программируемый инструмент) широко используется для программирования станков с ЧПУ. Язык также не имеет возможностей ввода-вывода.

0 голосов
/ 29 апреля 2010

Итак ... вы ищете супер-простой язык? Как насчет Пакетного программирования? Если у вас есть какая-либо версия Windows, то у вас есть доступ к пакетному компилятору. Это также более полезно, чем вы думаете, так как вы можете выполнять основные функции файла (копировать, переименовывать, создавать каталог, удалять файл и т. Д.)

http://www.csulb.edu/~murdock/dosindex.html

Пример

  1. Откройте блокнот и создайте файл .Bat на своем компьютере с Windows.
  2. Открыть файл .Bat с помощью блокнота
  3. В первой строке введите "echo off"
  4. Во второй строке введите "echo hello world"
  5. В третьей строке введите «pause»
  6. Сохраните и запустите файл.

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

0 голосов
/ 29 апреля 2010

Синтаксис Makefile, похоже, не имеет операторов или управляющих структур. Я бы сказал, что это язык программирования, но он не является полным по Тьюрингу (в любом случае, без расширения стандарта POSIX)

0 голосов
/ 28 апреля 2010

D (используется в DTrace)?

...