самый простой язык программирования.
От: goondick  
Дата: 10.02.12 08:02
Оценка:
вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?

достаточно иметь IF, GOTO и LABEL? что-то еще?
Re: самый простой язык программирования.
От: Курилка Россия http://kirya.narod.ru/
Дата: 10.02.12 08:11
Оценка:
Здравствуйте, goondick, Вы писали:

G>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


G>достаточно иметь IF, GOTO и LABEL? что-то еще?


недавнюю тему
Автор: Дмитрий Писаренко
Дата: 28.01.12
глянь
Re: самый простой язык программирования.
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 10.02.12 08:15
Оценка: 2 (1)
Здравствуйте, goondick, Вы писали:

G>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


Одного:
http://semarch.linguistics.fas.nyu.edu/barker/Iota/
Re: самый простой язык программирования.
От: alpha21264 СССР  
Дата: 10.02.12 08:17
Оценка:
Здравствуйте, goondick, Вы писали:

G>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


G>достаточно иметь IF, GOTO и LABEL? что-то еще?


И сам язык.
А ты написал только операторы управления (и то не все, подпрограмм нет).
И зачем это надо, если ты не разрабатываешь процессоры?

Течёт вода Кубань-реки куда велят большевики.
Re: самый простой язык программирования.
От: LuciferSingapore Россия  
Дата: 10.02.12 08:18
Оценка:
Здравствуйте, goondick, Вы писали:

G>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


G>достаточно иметь IF, GOTO и LABEL? что-то еще?


Вопрос непонятен — что такое "оператор" вне контекста некоторого языка программирования или класса языков?
Можно взять другую модель исполнения, не имеющую вообще никаких операторов.
Re[2]: самый простой язык программирования.
От: LuciferSingapore Россия  
Дата: 10.02.12 08:20
Оценка: +1
Здравствуйте, D. Mon, Вы писали:

DM>Здравствуйте, goondick, Вы писали:


G>>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


DM>Одного:

DM>http://semarch.linguistics.fas.nyu.edu/barker/Iota/

Ни одного: нормальные алгоритмы Маркова.
Re[2]: самый простой язык программирования.
От: goondick  
Дата: 10.02.12 08:23
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Здравствуйте, goondick, Вы писали:


G>>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


DM>Одного:

DM>http://semarch.linguistics.fas.nyu.edu/barker/Iota/

Это надо сначала пыхнуть такой же травы, что и автор этой статьи. У меня к сожалению такой нет.
Re: самый простой язык программирования.
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 10.02.12 08:26
Оценка:
Здравствуйте, goondick, Вы писали:

G>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


Ни одного, достаточно две цифры 0 и 1. На худой конец, кому сложно работать с 0 и 1, можно сделать 0..9 A..F.

Вызов функции будет выглядеть например так: 1100100100100001
Re[2]: самый простой язык программирования.
От: goondick  
Дата: 10.02.12 08:26
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Здравствуйте, goondick, Вы писали:


G>>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


G>>достаточно иметь IF, GOTO и LABEL? что-то еще?


К>недавнюю тему
Автор: Дмитрий Писаренко
Дата: 28.01.12
глянь


спасибо за наводку. Там правда только очень много философии не в мою тему.
Re[2]: самый простой язык программирования.
От: goondick  
Дата: 10.02.12 08:29
Оценка:
Здравствуйте, LuciferSingapore, Вы писали:

LS>Здравствуйте, goondick, Вы писали:


G>>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


G>>достаточно иметь IF, GOTO и LABEL? что-то еще?


LS>Вопрос непонятен — что такое "оператор" вне контекста некоторого языка программирования или класса языков?

LS>Можно взять другую модель исполнения, не имеющую вообще никаких операторов.

Оператор(программирование)
Re[3]: самый простой язык программирования.
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 10.02.12 08:39
Оценка:
Здравствуйте, LuciferSingapore, Вы писали:

LS>Ни одного: нормальные алгоритмы Маркова.


Там есть не меньше двух — стрелки двух видов.
Re[3]: самый простой язык программирования.
От: LuciferSingapore Россия  
Дата: 10.02.12 08:40
Оценка:
Здравствуйте, goondick, Вы писали:

G>Оператор(программирование)


Ну, в таком случае можно взять нормальные алгоритмы Маркова. Там программа — это последовательность формул подстановки. С какой-то точки зрения здесь можно увидеть оператор подстановки, согласно этому определению.
Или, например, частично рекурсивные функции. В них есть понятие оператора, но это другое понятие.
Re[4]: самый простой язык программирования.
От: LuciferSingapore Россия  
Дата: 10.02.12 08:42
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Там есть не меньше двух — стрелки двух видов.


Это называется формулами подстановки, а не операторами. Да, с некоторой точки зрения можно назвать их операторами.
Можно взять, к примеру, частично рекурсивные функции. В них есть понятие оператора, но это другое понятие, не то, на которое дал ссылку топикстартер.
Проблема чисто терминологическая.
Re[2]: самый простой язык программирования.
От: goondick  
Дата: 10.02.12 08:53
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>Здравствуйте, goondick, Вы писали:


G>>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


G>>достаточно иметь IF, GOTO и LABEL? что-то еще?


A>А ты написал только операторы управления (и то не все, подпрограмм нет).


так можно подпрограмму организовать с GOTO и LABEL

A>И зачем это надо, если ты не разрабатываешь процессоры?


пока не придумал зачем. Может детей в дошколке обучать или пенсионерам там для забавы..
Re[3]: самый простой язык программирования.
От: alpha21264 СССР  
Дата: 10.02.12 09:02
Оценка:
Здравствуйте, goondick, Вы писали:

G>Здравствуйте, alpha21264, Вы писали:


A>>Здравствуйте, goondick, Вы писали:


G>>>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


G>>>достаточно иметь IF, GOTO и LABEL? что-то еще?


A>>А ты написал только операторы управления (и то не все, подпрограмм нет).


G>так можно подпрограмму организовать с GOTO и LABEL


Тогда метка должна быть не простая, а вычислимая.

A>>И зачем это надо, если ты не разрабатываешь процессоры?


G>пока не придумал зачем. Может детей в дошколке обучать или пенсионерам там для забавы..


Начни с постановки задачи. Сразу поймешь куда нужно оптимизировать язык.

PS.
Сейчас язык программирования редко является только языком.
Чаще это платформа — язык, компилятор, ИДЕ, библиотеки.
Это если по взрослому.

Течёт вода Кубань-реки куда велят большевики.
Re[4]: самый простой язык программирования.
От: goondick  
Дата: 10.02.12 09:03
Оценка:
Здравствуйте, LuciferSingapore, Вы писали:

LS>Здравствуйте, goondick, Вы писали:


G>>Оператор(программирование)


LS>Ну, в таком случае можно взять нормальные алгоритмы Маркова. Там программа — это последовательность формул подстановки. С какой-то точки зрения здесь можно увидеть оператор подстановки, согласно этому определению.

LS>Или, например, частично рекурсивные функции. В них есть понятие оператора, но это другое понятие.

ну это же алгоритм а не программирование.
Тем болле мне надо чтобы еще язык был доступен в понимании например моей продвинутой бабушке. С такой мутью она даже крестики-нолики не напишет: { 0, 1, | } |0 → 0|| 1 → 0| 0 → ""
Re[4]: самый простой язык программирования.
От: goondick  
Дата: 10.02.12 09:07
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>Здравствуйте, goondick, Вы писали:


G>>Здравствуйте, alpha21264, Вы писали:


A>>>Здравствуйте, goondick, Вы писали:


G>>>>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


G>>>>достаточно иметь IF, GOTO и LABEL? что-то еще?


A>>>А ты написал только операторы управления (и то не все, подпрограмм нет).


G>>так можно подпрограмму организовать с GOTO и LABEL


A>Тогда метка должна быть не простая, а вычислимая.


ну да, так же думаю

A>>>И зачем это надо, если ты не разрабатываешь процессоры?


G>>пока не придумал зачем. Может детей в дошколке обучать или пенсионерам там для забавы..


A>Начни с постановки задачи. Сразу поймешь куда нужно оптимизировать язык.


A>PS.

A>Сейчас язык программирования редко является только языком.
A>Чаще это платформа — язык, компилятор, ИДЕ, библиотеки.
A>Это если по взрослому.

компилятор и ИДЕ не проблема, с библиотеками сложнее, они тоже должны быть с низким порогом вхождения.
Re: самый простой язык программирования.
От: Centaur Россия  
Дата: 10.02.12 09:45
Оценка:
Здравствуйте, goondick, Вы писали:

G>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


Основная структурная теорема говорит, что достаточно следования, альтернативы (if) и итерации (while).

Есть также следствие, что достаточно следования и while:

1. if (b) { foo; } else { bar; } эквивалентно if (b) { foo; }; if (!b) { bar; }.
2. if (b) { foo; } эквивалентно __flag = false; while (!__flag && b) { foo; __flag = true; }.

Но это всё в предположении, что работаем в императивной парадигме. В функциональной, например, базис составляют суперпозиция, примитивная рекурсия и минимизация.
Re[5]: самый простой язык программирования.
От: alpha21264 СССР  
Дата: 10.02.12 09:50
Оценка:
Здравствуйте, goondick, Вы писали:

G>Здравствуйте, alpha21264, Вы писали:


A>>PS.

A>>Сейчас язык программирования редко является только языком.
A>>Чаще это платформа — язык, компилятор, ИДЕ, библиотеки.
A>>Это если по взрослому.

G>компилятор и ИДЕ не проблема, с библиотеками сложнее, они тоже должны быть с низким порогом вхождения.


Сейчас делают так — берут уже готовую библиотеку, и придулывают к ней линк (бандл) к языку.

И вообще, я бы на макросах C++ что-нибудь сочинил бы.
Язык предоставляемый пользователю — какой мы сочиним.
А все остальные составляющие платформы — готовые.
У меня один товарищ так радиоаппаратуру описывал.

Течёт вода Кубань-реки куда велят большевики.
Re[6]: самый простой язык программирования.
От: goondick  
Дата: 10.02.12 09:57
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>Здравствуйте, goondick, Вы писали:


G>>Здравствуйте, alpha21264, Вы писали:


A>>>PS.

A>>>Сейчас язык программирования редко является только языком.
A>>>Чаще это платформа — язык, компилятор, ИДЕ, библиотеки.
A>>>Это если по взрослому.

G>>компилятор и ИДЕ не проблема, с библиотеками сложнее, они тоже должны быть с низким порогом вхождения.


A>Сейчас делают так — берут уже готовую библиотеку, и придулывают к ней линк (бандл) к языку.


A>И вообще, я бы на макросах C++ что-нибудь сочинил бы.

A>Язык предоставляемый пользователю — какой мы сочиним.
A>А все остальные составляющие платформы — готовые.
A>У меня один товарищ так радиоаппаратуру описывал.

интересная идея. спасибо! я совсем про такую фишку забыл.
Re[2]: самый простой язык программирования.
От: Chrome  
Дата: 10.02.12 11:20
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Ни одного, достаточно две цифры 0 и 1. На худой конец, кому сложно работать с 0 и 1, можно сделать 0..9 A..F.


I>Вызов функции будет выглядеть например так: 1100100100100001


Достаточно одной цифры, например 0
возможные программы будут выглядеть так 0, 00, 000, 00000000000 и тд
Re[2]: самый простой язык программирования.
От: Chrome  
Дата: 10.02.12 11:27
Оценка:
I>Ни одного, достаточно две цифры 0 и 1. На худой конец, кому сложно работать с 0 и 1, можно сделать 0..9 A..F.

I>Вызов функции будет выглядеть например так: 1100100100100001


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

со сложной семантикой исполнителя?
Есть формальные критерии?
Re[3]: самый простой язык программирования.
От: FR  
Дата: 10.02.12 16:02
Оценка:
Здравствуйте, goondick, Вы писали:

G>пока не придумал зачем. Может детей в дошколке обучать или пенсионерам там для забавы..


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

Другие варианты, уже подальше от майнстрима это Scheme и Forth.
Re[3]: самый простой язык программирования.
От: FR  
Дата: 10.02.12 16:04
Оценка:
Здравствуйте, Chrome, Вы писали:

C>Достаточно одной цифры, например 0

C>возможные программы будут выглядеть так 0, 00, 000, 00000000000 и тд

Без разделителя не получится, а это еще один символ.
Re[2]: самый простой язык программирования.
От: batu Украина  
Дата: 10.02.12 16:29
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>Здравствуйте, goondick, Вы писали:


G>>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


G>>достаточно иметь IF, GOTO и LABEL? что-то еще?


A>И сам язык.

A>А ты написал только операторы управления (и то не все, подпрограмм нет).
A>И зачем это надо, если ты не разрабатываешь процессоры?
И я удивлен. Арифметические операции откуда взялись? Без операции присваивания и прибавления единицы просто никак. Для императивного программирования...
Re[2]: самый простой язык программирования.
От: batu Украина  
Дата: 10.02.12 16:32
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, goondick, Вы писали:


G>>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


I>Ни одного, достаточно две цифры 0 и 1. На худой конец, кому сложно работать с 0 и 1, можно сделать 0..9 A..F.


I>Вызов функции будет выглядеть например так: 1100100100100001

А вызов функции лькуда взялся?
Полная картина будет из присвоения нуля, прибавления единицы и условного перехода. Вот это все.
Re[4]: самый простой язык программирования.
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 10.02.12 16:44
Оценка:
Здравствуйте, FR, Вы писали:

C>>Достаточно одной цифры, например 0

C>>возможные программы будут выглядеть так 0, 00, 000, 00000000000 и тд

FR>Без разделителя не получится, а это еще один символ.


Получится. Я выше давал ссылку, там произвольную программу (целиком, не один оператор) представляли последовательностью из 0 и 1, начинающуюся с 1, т.е. натуральным числом. А натуральное число в унарной системе счисления можно записать одними нулями.
Re[5]: самый простой язык программирования.
От: FR  
Дата: 10.02.12 17:00
Оценка:
Здравствуйте, D. Mon, Вы писали:


DM>Получится. Я выше давал ссылку, там произвольную программу (целиком, не один оператор) представляли последовательностью из 0 и 1, начинающуюся с 1, т.е. натуральным числом. А натуральное число в унарной системе счисления можно записать одними нулями.


Натуральными числами можно конечно как в анекдоте про рассказывание анекдотов по номерам.
А вот унарную систему счисления в компьютер по моему никак односимвольно не загнать.
Re[6]: самый простой язык программирования.
От: Курилка Россия http://kirya.narod.ru/
Дата: 10.02.12 17:02
Оценка: 2 (1) :)
Здравствуйте, FR, Вы писали:

FR>Натуральными числами можно конечно как в анекдоте про рассказывание анекдотов по номерам.

FR>А вот унарную систему счисления в компьютер по моему никак односимвольно не загнать.

В оригинальном вопросе не было компьютера
Re[6]: самый простой язык программирования.
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 10.02.12 17:09
Оценка:
Здравствуйте, FR, Вы писали:

FR>Натуральными числами можно конечно как в анекдоте про рассказывание анекдотов по номерам.


Там не по номерам, вполне осмысленная кодировка на комбинаторах. Т.е. "анекдот" закодирован в самом номере, а не в посторонней памяти.

FR>А вот унарную систему счисления в компьютер по моему никак односимвольно не загнать.


Каждую программу — в свой файл. Файлы из односимвольного алфавита, просто разной длины. Подразумеваю, что остальная система более человеческая, не весь комп такой.
Re[4]: самый простой язык программирования.
От: samius Япония http://sams-tricks.blogspot.com
Дата: 10.02.12 17:22
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, Chrome, Вы писали:


C>>Достаточно одной цифры, например 0

C>>возможные программы будут выглядеть так 0, 00, 000, 00000000000 и тд

FR>Без разделителя не получится, а это еще один символ.

Разделитель не нужен. Берем двоичный файл любой программы, интерпретируем его как одно число, записываем соответствующее этому числу количество нулей.
Re[5]: самый простой язык программирования.
От: samius Япония http://sams-tricks.blogspot.com
Дата: 10.02.12 17:23
Оценка:
Здравствуйте, samius, Вы писали:

S>Здравствуйте, FR, Вы писали:


FR>>Без разделителя не получится, а это еще один символ.

S>Разделитель не нужен. Берем двоичный файл любой программы, интерпретируем его как одно число, записываем соответствующее этому числу количество нулей.

Пардон, повторился доо того как дочитал ветку до конца
Re[7]: самый простой язык программирования.
От: FR  
Дата: 10.02.12 17:26
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Каждую программу — в свой файл. Файлы из односимвольного алфавита, просто разной длины. Подразумеваю, что остальная система более человеческая, не весь комп такой.


Ну если рассматривать абстрактно компьютер это машина тьюринга никаких файлов в нем нет, лента же как минимум
двоична все-таки.
Re: самый простой язык программирования.
От: andy1618 Россия  
Дата: 11.02.12 06:46
Оценка:
Здравствуйте, goondick, Вы писали:

G>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


G>достаточно иметь IF, GOTO и LABEL? что-то еще?


Наводящий вопрос: как с помощью этих операторов мы будем работать, к примеру, с дисплеем, с жёстким диском, или хотя бы с памятью? Или в нашем вычислительном устройстве нет ни того ни другого ни третьего?
Re[2]: самый простой язык программирования.
От: мыщъх США http://nezumi-lab.org
Дата: 11.02.12 07:18
Оценка: 1 (1) :)
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, goondick, Вы писали:


G>>вот задумался вопросом: чтобы создать самый элементарный язык программирования, сколько нужно минимум операторов?


I>Ни одного, достаточно две цифры 0 и 1. На худой конец, кому сложно работать с 0 и 1, можно сделать 0..9 A..F.


I>Вызов функции будет выглядеть например так: 1100100100100001


а одной единицы не хватит? что-то мне подсказывает, что хватит. в конце-концов, любую программу можно представить в виде 0..N единиц.
например,
1 — вывести "привет, мир"
11 -- спросить имя и сказать "привет [как тебя зовут]"
111 -- ...
1111 -- ...
...
111111111111111111...11111111111111111 -- вывести на принтер "войну и мир"

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

кстати, тут был анекдот, дескать в любой системе исчисления ее основание равно десяти. так вот, если основание 1, то ответ неверный. и основание будет равно 1.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re: самый простой язык программирования.
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 11.02.12 12:04
Оценка:
G>достаточно иметь IF, GOTO и LABEL? что-то еще?

лучше тогда брать foreach и match/else, во-первых: два оператора вместо трех, а во-вторых — кода получается существенно меньше.
Re[3]: самый простой язык программирования.
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 11.02.12 17:18
Оценка:
Здравствуйте, batu, Вы писали:

I>>Вызов функции будет выглядеть например так: 1100100100100001

B>А вызов функции лькуда взялся?

А ты внимательно посмотри
Re[4]: самый простой язык программирования.
От: batu Украина  
Дата: 12.02.12 12:31
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, batu, Вы писали:


I>>>Вызов функции будет выглядеть например так: 1100100100100001

B>>А вызов функции лькуда взялся?

I>А ты внимательно посмотри

Я о том, что это тоже оператор
Re[5]: самый простой язык программирования.
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 12.02.12 15:22
Оценка:
Здравствуйте, batu, Вы писали:

B>Здравствуйте, Ikemefula, Вы писали:


I>>Здравствуйте, batu, Вы писали:


I>>>>Вызов функции будет выглядеть например так: 1100100100100001

B>>>А вызов функции лькуда взялся?

I>>А ты внимательно посмотри

B>Я о том, что это тоже оператор

И что с того ?
Re[3]: самый простой язык программирования.
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 12.02.12 15:23
Оценка:
Здравствуйте, Chrome, Вы писали:

I>>Ни одного, достаточно две цифры 0 и 1. На худой конец, кому сложно работать с 0 и 1, можно сделать 0..9 A..F.


I>>Вызов функции будет выглядеть например так: 1100100100100001


C>Вообще интересный вопрос, кто то обзовет это кодированной записью другого языка,

C>но почему нельзя назвать именно языком?

C>со сложной семантикой исполнителя?

C>Есть формальные критерии?

Это и есть язык. Можно даже одни единицы оставить, ничего не изменится
Re[6]: самый простой язык программирования.
От: FragMent  
Дата: 13.02.12 09:59
Оценка:
A>И вообще, я бы на макросах C++ что-нибудь сочинил бы.
A>Язык предоставляемый пользователю — какой мы сочиним.
A>А все остальные составляющие платформы — готовые.
A>У меня один товарищ так радиоаппаратуру описывал.
Если кому интересно
http://ru.wikipedia.org/wiki/SystemC
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.