Как придумали программы для программирования без программ для программирования

Программирование — это наука о том, как создавать компьютерные программы, которые выполняют определенные задачи. Для создания этих программ, обычно используются специальные программы для программирования, которые называются интегрированные среды разработки (IDE).

Но что если сами программисты решат создать программу для программирования, не используя IDE? Это было сделано благодаря языку программирования, который называется Forth.

Что такое Forth?

Forth — это интерпретируемый язык программирования, который был разработан в 1968 году Чарльзом Муром. С тех пор Forth был использован для создания различных систем, включая микроконтроллеры, роботов и операционные системы. Он был основан на стеке, что позволяет осуществлять вычисления с помощью простого набора команд.

Как Forth помог создать программу для программирования?

В начале 1970-х годов компания Xerox проводила исследования в области программирования, которые вылились в создание языка Madcap. Этот язык был основан на Forth и позволял его более простой и понятный способ использования в коммерческих приложениях.

No code. Программирование без кода. Что вы можете сделать уже сегодня не умея программировать.

Одним из наиболее интересных проектов, связанных с Forth, была разработка программы FICL (Forth Inspired Command Language), которая была создана Уорреном Харрисоном и Брайаном Хисгеном. Эта программа позволяла создавать небольшие языки для определенных задач. FICL была написана на языке C и распространялась в виде библиотеки.

Как FICL использовался для создания IDE?

Группа программистов, работавших над проектом QuickSilver на Motorola, решили использовать FICL для создания своей собственной IDE. Они назвали его MPE (Motorola Program Entry). MPE была написана на языке Assembler и Forth, и была распространена на компьютерах компании Motorola.

Итак, программисты использовали язык Forth для создания библиотеки FICL, которая потом использовалась для создания IDE MPE. Эта IDE позволила программистам разрабатывать программы для магистральных процессоров, генерируя машинный код, который затем загружался в микропроцессоры.

Заключение

Использование языка Forth и FICL для создания IDE MPE показывает, что существует много способов написания программ для программирования, и креативность может играть большую роль в этом процессе. Программисты могут использовать существующие языки программирования и инструменты, как и создавать свои собственные, чтобы сделать программирование более эффективным и интересным.

  • «А ты пропишешь меня у себя, а то я бомжиха, комп поставить негде??»
  • Что правильнее: постричься, а потом побриться, или наоборот?
  • Зелёный колючий растёт в жарких странах
  • Чем можно ускорить действие слабительного?
  • Как переводится andijonlik
  • Один хороший человек сказал, что здесь никому верить нельзя. неуж то правда .
  • Что-то мне подсказывает, что юмор чрезмерный даже здесь вреден? Затыкайте, но рейтинг на курице с яйцом сделаешь?
  • Игра: Gary’s mod

Источник: sovet-kak.ru

Ты НЕ ПРОГРАММИСТ без этих ПРОГРАММ!!1

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

u_a89ccbdd253f4170a0a91f93cd0c8492_800.png

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

stalin

Capitan

Регистрация 25 Окт 2013 Сообщения 59 Репутация 0 Спасибо 0 Монет 0
напрямую. Код забивали на перфокарту методом нанесения дырочек в определённых местах.

Данил174рус

Capitan

Регистрация 15 Авг 2013 Сообщения 76 Репутация 0 Спасибо 0 Монет 0
так вроде сначала были перфокарты

Cheat_PRO

Capitan

Регистрация 26 Мар 2013 Сообщения 72 Репутация 0 Спасибо 0 Монет 0
вбивали напрямую в машинных кодах т. е. 1 и 0

фыЫ

Capitan

Регистрация 22 Июл 2013 Сообщения 94 Репутация -3 Спасибо 0 Монет 0
Тогда тупо провода переключали или перфокарты были

Altspieller

Capitan

Регистрация 28 Сен 2013 Сообщения 75 Репутация 0 Спасибо 0 Монет 0

Читайте также:
Программа технологические машины и оборудование

Сначала не было языков программирования. Значит, машинные коды. Потом — языки низкого уровня, ассемблеры

мак

Capitan

Регистрация 3 Июл 2013 Сообщения 70 Репутация 0 Спасибо 0 Монет 0

222004311_ffe01a968ac0aa0f6dc5499298de94d4_800.jpg

игорь каштуев

Capitan

Регистрация 15 Сен 2013 Сообщения 71 Репутация 0 Спасибо 0 Монет 0
Вручную машинным кодом.

ццв

Capitan

Регистрация 26 Окт 2013 Сообщения 79 Репутация 0 Спасибо 0 Монет 0
по разному. на электроперереключателях, на перфокартах и тп

movla

Capitan

Регистрация 5 Июл 2013 Сообщения 83 Репутация 0 Спасибо 0 Монет 0

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

итоплавт

Capitan

Регистрация 18 Дек 2013 Сообщения 79 Репутация 1 Спасибо 0 Монет 0
Ада Августа Лавлейс обошлась даже без компьютера.

Похожие темы

Ответы 5 Просмотры 167
Ответы 4 Просмотры 106
Ответы 4 Просмотры 69

  • Kromestar
  • 28 Дек 2022
  • Компьютерные вопросы

Ответы 7 Просмотры 143

  • ghjktgkty
  • 26 Янв 2023
  • Компьютерные вопросы

Ответы 4 Просмотры 126
Поделиться:

  • Крипта, интернет, софт
  • Разработка игрового ПО
  • Компьютерные вопросы

О нас

4cheaT один из старейших форумов рунета. Мы работаем, чтобы вы могли отдыхать с комфортом. Наш форум посвящён онлайн играм, игровым разработкам и модификациям. На нашем онлайн рынке вы можете купить и продать любые онлайн ценности и услуги. Гейминг объединяет криптанов, программистов и вебмастеров!

Разделы форума

Важное

Мы в соц. сетях

  • Обратная связь
  • Условия и правила
  • Политика конфиденциальности
  • Помощь
  • RSS

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

Источник: 4cht.com

Экспериментальный язык для программирования без компьютера Путник

Михаил Семионенков

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

Предыстория

Несколько лет назад я занимался переводом и редактированием перевода Блокли (Блокли, в частности, предлагает набор игр для юных программистов), продвигал Блокли, по мере сил, в русскоязычном пространстве. С появлением микро:бита я практически полностью переключился на популяризацию системы MakeCode (на начальной стадии разработки MakeCode Блокли использовался в качестве библиотеки, то есть, я как бы не изменял своему «крестнику»).

И вот недавно, взглянув на подрастающего внука, я решил, что пора бы уже задуматься о его приобщении к программированию. Понял я, что MakeCode, с целевой аудиторий 12+, мне не помощник, и вспомнил про старого доброго знакомого — Блокли.

Первая игра Блокли — Лабиринт по идее, как раз должна служить для первого знакомства с базовыми идеями программирования. Но при свежем взгляде и конкретной задаче меня в Лабиринте уже не всё устроило.

Во-первых, сама идея начинать программировать сразу на компьютере: электроники в мире дошколят и без этого полно, плюс стоимость и порог вхождения пользователя. А оторвать программирование блоками (не только для Блокли) от компьютера практически невозможно: сделать, скажем, картонные блоки не получится, поскольку блоки могут вмещать в себя несколько блоков, их размер меняется. Опять же, рисованием блоки заменить трудно, а текст просто противоречит идее упрощения языка для начинающих
Во-вторых — привязка блоков к естественному языку. А если детсадовский орёл ещё читать не научился — ему и попрограммировать нельзя?

Словом, по мотивам Лабиринта (и Черепашки) родилась концепция языка Путник с вариантом для программирования движения на клетчатой плоскости.
Класс задач, на самом деле, можно выбрать и другой, сохраняя предлагаемый синтаксис, стилистику и управляющие структуры языка (об этом позже).

Синтаксис я постарался сделать максимально простым, безжалостно отсекая всё лишнее из традиционных текстовых языков программирования. Сначала показалось, что задача — «на один присест», но, с увеличением числа конструкций, стало ясно, что нужно искать баланс между полнотой, простотой и строгостью.

Получился довольно лаконичный язык, который можно использовать без компьютера Правда ли он подходит для детсадовцев и младших школьников? Пока сказать трудно: нужны эксперименты. Ещё труднее предсказать реакцию взрослых: если они сочтут язык слишком абстрактным, то до детей он просто не дойдёт..

Читайте также:
Адванта программа управления проектами отзывы

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

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

Язык Путник

Концепция

  1. Создание программы: программа пишется на бумаге (или собирается из картонных квадратов с изображением символов языка). Лексемы языка — максимально простые значки или их небольшие группы, которые легко написать и легко интерпретировать.
  2. Исполнение программы: Исполнителем выступают сами дети.
  3. Поле исполнения программы (для варианта с движением по плоскости): клетчая плоскость, где могут быть стенки. Клетки могут быть окрашены в различные цвета. Полем может служить асфальтированный двор, разрисованный в клеточку, пол из крупной плитки, а также настольная реализация.
  1. Знание право-лево
  2. Знание цифр и умение считать до 10
  3. Различение основных цветов

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

Составляющие языка

  • команды — атомарные операции, исполняемые программой
  • условия — условия используются в управляющих конструкциях — условных операторах и циклах, завершающихся по условию
  • управляющие конструкции — циклы и условные операторы

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

Команды

Команды для движения на клетчатой плоскости:

команда изображение комментарий
шаг вперёд Λ Лямбда, «шагающие ноги»
повернуть налево стрелка влево
повернуть направо стрелка вправо
закрасить клетку указанным цветом квадрат данного цвета. Замена — первая буква цвета Ограничимся К, Ж, З — цветами светофора

Строка программы может содержать произвольное число команд

Путник2

  • Движение «лесенкой»: Λ ← Λ → Λ

Циклы, выполняемые определённое число раз

вид цикла изображение комментарий
выполнение команды определённое число раз цифра 2-9 исполняет команду справа
выполнение группы команды определённое число раз цифра 2-9 с пробелом исполняет группу команд от пробела до конца строки

Путник4

  • 5 шагов вперёд:: 5Λ
  • развернуться и сделать 3 шага: 2 → 3 Λ
  • обойти квадрат со стороной 3 шага против часовой стрелки: 4 3Λ ←
  • «4 ступеньки»: 4Λ ← Λ →
Условия и логические операции

Условия обозначаются кружком. Содержание кружка определяет само условие: это значок или цвет круга. Кружок можно интерпретировать как «вид в подзорную трубу» Символ в круге заменён в тексте комбинацией .

Вместо слово «условие» можно использовать «случай».

Условия используются в условном операторе и цикле, завершающемся по условию. Для удобства изложения начнём с циклов.

Цикл «идти до»

— шаги вперёд выполняются. пока условие цикла не станет истинным

Выполняется шаг вперёд, пока условие не станет истинным

Знак > (или Лямбда, повернутая на 90 градусов по часовой стрелке) — направлен на цель движения.

  • «Шагать до финиша». В этом примере и ряде последующих мы будем считать, что финиш — это красная клетка.

Λ>К

Путник3

путник5

путник6

  • «Лево руля»: 5 Λ>V←

путник7

  • «Право руля»: 5 Λ>V→

Как будет показано ниже, цикл «идти до» является избыточным в языке, и он может быть заменён более универсальной формой цикла «выполнять до». Смысл введения этой конструкции — в облегчении перехода к более абстрактной универсальной конструкции, «идти до», состоящая из 3-х символов, хорошо ложится на естественный язык:

Λ — шагать впелёд

> — до

К — красной клетки

Цикл «выполнять до»

— группа действий выполняется. пока условие цикла не станет истинным.

«Выполнять до» — обобщение предыдущей конструкции, позволяющее выполнять произвольную группу действий.
Синтаксис этой конструкции отличается: она начинается с условия завершения цикла, за которым стоят выполняемые действия. Все действия после условия и до конца строки являются телом цикла.

Читайте также:
Программа если свекровь монстр
цикл изображение комментарий
«выполнять до» >

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

  • «Шагать до финиша» (смотри выше). >КΛ
  • «Лево руля» (смотри выше) : >КΛ>V ←
  • «Право руля» (смотри выше): >КΛ>V →

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

Условные операторы

Синтаксически наиболее сложная конструкция, которая имеет собственный разделитель, отличный от конца строки — пробел. Пробел предназначен для завершения условного оператора внутри строки. Внутри условного оператора условия одновременно закрывают предыдущую ветку и открывают новую

Условный оператор не допускает вложенности: внутри него нельзя использовать другой условный оператор. Внутри любой ветки условного оператора можно использовать циклы, если конец цикл «идти до», а также цикл «выполнять до», для которого конец цикла должен совпадать с концом ветки. Условный оператор можно употреблять внутри цикла (за вычетом случая, когда цикл уже находится внутри условного оператора, при этом конец условного оператора не обязан совпадать с концом цикла, поскольку конец условного оператора обозначен пробелом.

условный оператор изображение комментарий
если пробел обязателен, если конец конструкции не совпадает с концом строки
если-. иначе если . Пробел внутри конструкции НЕ употребляется
если -иначе \X Х в кружочке означает «все остальные случаи»
если-. иначе если -иначе . \X

путник8

  • «Лево руля» (смотри выше) : >КΛ ←←
  • «Право руля» (смотри выше) : >КΛ→→
  • «Извилистый маршрут без развилок»: >КΛ→→←←

В довершении, для иллюстрации программирования достаточно сложной логики: классические правила обхода лабиринтов без петель.

Эти правила приложимы к заключительному из Лабиринтов:

путник10

Вот аналог одного из вариантов программы на Блокли:

правило левой руки

«А напоследок я скажу»

Так уж получалисось, что все примеры пришлись на Лабиринт, и ничего на Черепашку. С Черепашкой нужно подумать о включении опускания-поднятия пера. Закраска клетки в текущем варианте — это, скорее, заготовка под более сложные лабиринты с петлями, где при прохождении некоторых развилок нужно ставить пометки.

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

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

Язык при желании нетрудно расширить процедурами.

Собственно язык — это первый шаг: нужны поля для исполнения программ, упражнения, сюжеты игр, а также переносы на другие классы задач. Всё это может реализоваться только как плод коллективных усилий.

Собираюсь создать группу на Фейсбуке.

Завершу идеей одной игры:

Игра Кладоискатели

На поле (лабиринт с несколькими входами?) разложены клады.

Есть стопка («колода») карточек с символами языка.

Каждый игрок получает получает в начале несколько карточек Ходы исполняются по очереди. При ходе игрок получает из стопки ещё одну карточку и по выбору либо составляет из всех или части карточек программу передвижения на другое поле, либо пропускает ход в надежде собрать более удачный набор карточек позже.

При исполнении программы игрок забирает все сокровища, через которые прошёл маршрут

Игра завершается, когда все сокровища будут собраны.

Отмечу, что одну и ту же карточку > («до») можно использовать и как «шагающие ноги» и как «перевёрнутые шагающие ноги». Окружность, используемую для условий, можно сделать съёмной и получаемой по требованию без ограничений. Это позволит двояко использовать команды, графически совпадающие с условиями (так уж получилось :-)).

Буду благодарен за отзывы и идеи.

До встречи на просторах!

Использованы скриншоты из игры Блокли Лабиринт.

Источник: novator.team

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru