Все что нужно знать о FOCAL

Содержание:

Focal или Фокал является интерпретируемым, универсальным языком программирования первого поколения, предназначенный для компьютерных систем PDP-8 корпорации Digital Equipment Corporation. Аббревиатура Focal расшифровывается как FOrmula CALculator или:

  • F – преобразование;
  • O – n-Line;
  • C – вычислений;
  • в A – lgebraic;
  • L – anguage;
  • или FO rmula CALculator.
Все что нужно знать о FOCALВсе что нужно знать о FOCAL
Получи грант, покрывающий 50% стоимости обучения
И обучайся новой профессии онлайн из любой точки мира

Что такое язык программирования?

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

Отличие от алгоритмов

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

Последний работает на подобии функционирования навигационной системы. То есть, впереди поворот налево, высчитываем расстояние до него и сто раз напоминаем об этом пользователю голосом или сигналами. Причем, русский воспринимает информацию на русском языке, вьетнамец – на вьетнамском и т.д. По сути, языки-то разные, но понимаем мы одинаково.

Разработка любой программы начинается с алгоритма, но для разных языков он строится отдельно. К примеру, в одном языке параметр «С» означает проверку, в другом – старт программы или делитель.

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

Все что нужно знать о FOCAL

Все что нужно знать о FOCAL
87% наших выпускников уже работают в IT
Оставь заявку, и мы поможем с выбором новой профессии

Зачем миру новый язык программирования?

Действительно, зачем? Ведь, существует же много старых и проверенных, к примеру, таких как Focal? Как правило задачи по созданию нового компьютерного языка в основном ставятся в тех случаях, когда от машин требуется произвести действия, которые ранее не были заложены в программах. Например, настройка работы станка ЧПУ или любого нового прибора, агрегата, аппарата. То есть, старый язык уже не пригоден к использованию, а новый значительно упрощает взаимодействие все с теми же упомянутыми выше машинами.

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

Подробнее о Focal

Принимая во внимание способность поддержания команд и совокупного синтеза языка, специалисты полагают, что Focal очень напоминает JOSS. Разница заключается только в том, что некоторые сложные функции и диапазоны были выброшены для оптимизации синтаксического анализатора.

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

Язык программирования является полностью законченной средой, в которой присутствуют:

  • строковый редактор;
  • переводчик;
  • системы ввода/вывода.

Полностью весь пакет носил имя Focal-8 и работал посредством PDP-5 и PDP-12. Для переноса на 11 версию с целью обеспечения файловой адаптации и интерпретации применялась базовая операционная версия. Не менее важным считалась доступность порта Intel 8080. Определение Focal трансформировалось два раза – до 69 и 71 версии.

Одним из основных разработчиков языка Focal является Ричард Мерилл, который также в 1968 году являлся создателем PDP-8. Равно, как и первые наработки языка Бейсик, интерпретатор Фокала самостоятельно формировал все необходимое окружение и не требовал наличия опционной системы.

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

На базе компании Coca-Cola использовалась подобная, но доработанная версия Focal, носящая название COKE. На советских системах ПК Фокал присутствовал на Электронике БК-0010/0011 и ДВК встроенный в ПЗУ (в поздних моделях БК — доступный на картридже). Также были доступны расширения языка для перечисленных машин, программирование которых осуществляли истинные энтузиасты-разработчики. Здесь присутствовали разные функции и опции:

  • вспомогательные команды;
  • графические редакторы;
  • пуск программ двоичной системы;
  • построчная обработка и т.д.

Значительно усовершенствованная версия языка применялась в качестве включающейся в ДИАСП – Диалоговую систему проектирования, разработанную для микроэлектроники. В конце прошлого века энтузиасты предприняли попытку перенести Фокал на IBM PC, тем самым создав Турбо Фокал. Однако данный эксперимент завершился неудаче и выбыл из строя уже на бета-версии.

По многим параметрам Фокал уступает Бейсику. К примеру, в нем полностью отсутствует тип строковых данных, поскольку все символы относятся к числовым значениям или дробным с перемещающейся запятой. Однако в сравнении Бейсиком Фокал менее притязателен к объемам потребляемых ресурсов, в том числе к памяти. Это позволяет программистам создавать более серьезные программы с учетом гораздо более урезанных ресурсов.

На конец прошлого века Фокал почти не применялся, порты, о которых говорилось выше использовались исключительно с целью экспериментов для создания развлекательных программ.

Как все начиналось

JOSS

В сфере инновационных технологий этот язык появился в 1963 году. Разработан ДЖОННИАК компьютер в Корпорация РЭНД. Применение данного языка было практически повсеместным, и, созданная в 1953 году машина в минимальные сроки истощила свой ресурс, отправившись «на заслуженный отдых». На смену ей пришел Джосс, перекинутый на большую систему PDP-6, Digital Equipment Corporation (DEC). Пользователей прибывало с каждым днем и к 1970 году их количество перевалило уже за 600 единиц.

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

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

Другие интересные темы из мира становления и развития программирования обсуждаются в нашем блоге DevEducation.

FOCAL

PDP-6 относится к стартовым машинам DEC мейнфремов класса и JOSS в достаточной мере стал пользоваться данным преимуществам в отношении мощности и объема памяти. Созданный Р. Меррилом язык устранил функции JOSS, но поэтапно, по мере надобности. Это позволило работать в более широком диапазоне памяти PDP-8 или других 12-битных машин. Для достижения данной цели были предприняты сложные шаги. К примеру, уменьшение количественно-временных переменных.

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

Первый прототип Focal позиционировали в 1968 году, на следующий год появилось обновление, которое затем стало популярно под именем Focal-69. Причем, вне зависимости от подтипа данная система носила имя Focal-8 уже после того, как ее перенесли на машины 12-битной серии, в том числе и PDP-5 и PDP-12.

BASIC

В период растущей популярности Focal, ближе к концу 60-х годов прошлого столетия, несколько новаторских компаний позволили себе нарушить спокойствие сферы миникомпьютеров, реализуя практически аналогичные установки, функционирующие на Basic, оснащенной опцией разделения времени. Особого внимания заслуживал вариант HP 2100, функционирующий под контролем HP Time-Shared BASIC.

Сильно востребованным оказался Basic в сфере образования. Это вполне объяснимо и тем, что библиотека языка активно росла и пополнялась при помощи активного посредничества Миннесотского образовательного компьютерного консорциума. Однако очень скоро выяснилось, что продажа машин, оснащенных языком Focal была не слишком востребованной. Даже несмотря на все преимущества. И объяснения у этого факта было простое. Борьба Focal и Basic во многом проигрывалась первым. То есть, DEC по каким-то только ей известным причинам просто не желала выдавать лицензию Focal и продажа этих машин шла «со скрипом».

В результате активно развиваться стал язык Basic. Специально для разработки и усовершенствования была организована организация, как потом выяснилось, нанявшая единственного существовавшего и практиковавшего на тот момент специалиста в Бруклине и стала производить разработки для PDP-8 / 4 кВт. Изначально DEC реализовывала полностью укомплектованные версии PDP-8 с терминалами в виде Basic из серии EduSystem. При этом гораздо больше расширенные системы данной линейки обладают широкими версиями Basic, а ряд из них и Focal и FORTRAN.

Следующим шагом стал перенос программ Focal на Basic, в том числе The Sumer Game, переименованную в Hamurabi. Соединив системы и данные, собранные от нештатных программистов, у компании получилось аккумулировать множество сведений, и в 1973 году вышла 101 BASIC Computer Games.

Эпоха становления в СССР

Отечественными разработчиками и новаторами того времени был создан клон PDP-11. Эта разработка в 70-е годы, как и ряд других в то время была предназначена для нужд военно-промышленного комплекса. В 80-е годы представили однокристальные версии, максимально похожие на LSI-11. Именно они дали старт развитию современных домашних ПК, адаптирующихся с PDP-11. Самой знаковой разработкой в данной сфере стала линейка Электроника BK, увидевшая свет в 1985 году. У самых истоков эти модели шли на Focal на картридже ROM. Однако Basic обязательно дополнял системы. Несколько позже создавали машинные установки исключительно на Basic.

Все что нужно знать о FOCAL

Выдержки из описания к FOCAL-69

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

Данный способ функционирования типичен мгновенному реагированию и программному режиму Basic, что максимально не похоже на JOSS, где все без исключения команды сохранялись и загружались по типу секторов функциональной среды потребителя. Тем самым, JOSS мог иметь не пронумерованные командные строки, использующиеся для постановки целого ряда других задач. Focal не мог похвалиться таким преимуществом, именно потому параметры рекомендовано загрузить и сохранить, чтобы они стали доступны для сопутствующих или сторонних режимов работы программы.

Операторы

Каждая следующая строчка в программах Focal начинается, как число следующей строки. На примере JOSS, имеющей число со стандартной точкой, включающие двухзначные числа, разделенные точкой. В Focal-8 допустимые числовые значения находятся в пределах от 1.01 до 31.99. При переносе на бумажный носитель с применением WRITE, Focal аналогично Basic LIST, при этом начальные нулевые значения будут добавлены с тем расчетом, чтобы были заполнены все номера строк. То есть, они будут состоять из пяти символов, в перечне которых и точка, что выглядит следующим образом: 01:10. Элементы, которые причислены к указанным строкам не требуют начальных нулей, то есть априори 1.10.

Расположенное слева от точки число называется «номер группы». Данного понятия не существует в целом ряде языков, например, таких как Fortran или Basic. Первостепенно значимое их применение заключается в позиционировании группы, как подпрограммы, вызываемой посредством DO, к примеру, DO 5 и т.д., а также для создания списков кодов во 2 группе или ERASE 4, то есть, для удаления строг в группе под номером 4.

Каждая строчка начинается с ключевого слова для данной команды, следующей за ее номером. То есть, стандартных как таковых программ просто не существует. Для единой программы существует возможность применять несколько операторов, предварительно разделив их «;». Проведение такого процесса несколько рознится с традиционным, как если бы операторы находились в отдельных строках.

Основные команды и их особенности

ASK или «А»

Предназначена для приема чисел и вывода строк и сохраненных чисел. Если пользователь вместо букв вводит цифры, то «А» — 1, «В» — в и т.д.

Комментарии или «С»

Предназначена для формирования примечания.

DO или «D»

Предназначена для переброса к программе, подпрограмме, любому заданному уровню или строке. В случае, когда вы поставите номер строки, она запускается, после чего отправляет назад к пункту после DO. Когда не указывается номер строки, исполнение команды начинается с начала строки и далее работает поэтапно до самого конца. При необходимости отправки программы в начало, ставится «Возврат».

FOR или «F»

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

GOTO или «G»

Является переносом в конец строки или применяется для старта.

IF или «I»

Формирует условное ответвление на базе символа выражения. В том случае, когда выражение менее нулевого значения, переход происходит к началу. Если начало 2 строки равно «0», то к истоку 2 строки и т.д.

QUIT или «Q»

Останавливает процесс программы и завершает ее выполнение.

Возврат или «R»

Перебрасывает программу к тому сектору, от которого она была вызвана.

SET или «S»

Присваивает результаты выражения анализируемых параметров.

TYPE или «T»

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

Переменные

Начинаются с выбранной вами буквы, за исключением F и комбинируются в любой последовательности букв и цифр. Каждый элемент рассматривается как единое целое.

Окружение и его команды

Для старта программ в языке Focal используется GOTO, в большинстве источников именуется, как GO. Полностью аналогично RUN в Basic. Наряду с этим применяется для начала работы программы указание строки в редакторе.

Редактирование

Следующие строчки вводят в систему, когда команда начинается с нумерации строчки. Перечень:

  • ERASE или «E»;
  • MODIFY или «M»;
  • WRITE или «W».

Файловые

Обуславливает команду старт или «О». ТО есть предназначена для адаптации к чтению, записи, возобновления ввода и вывода, закрытия системы.

Библиотечные

Система имеет возможность корректировать коллекции языка, предлагаемыми в форме совокупного перечня кодов. Тем самым вызывают другие программы или единую посредством первой. Могут присваиваться только шестизначные имена.

В теле адаптера не хватило объема для сбора сообщений об ошибках или таблицы номеров ошибок. Тем самым в ходе выявления проблемы выводится текст 28.73@01.10, где первые 4 цифры – проверка кода, последние – номер строки, где присутствует ошибка.

Относительно JOSS

По всем оценкам специалистов и по факту, Focal является оптимизированной копией JOSS. Внесенные за годы разработок изменения позволили создать более удобоваримую и понятную версию для анализа. Почти каждая команда Focal обладает аналогиями с JOSS и различается исключительно в мелочах. Однако ряд характеристик JOSS не предусмотрено в Focal.

Одно из существенных различий состоит в том, что в JOSS присутствует общий список опций сравнения и система логики, работающие в системах if и for. Также первый может быть адаптированным к любым элементам в отличие от Focal. Здесь одна опция эквивалентна goto.

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

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

Относительно BASIC

Не сравнивать между собой Focal и Basic просто невозможно. Оба языка предназначались для мини-систем эпохи создания. Они обладают массой точек соприкосновения как в отношении синтаксиса, так и структуры. В подавляющем большинстве случаев существует вероятность прямой трансформации кодов Focal из Basic. Исключение составляют некоторые случаи – функции, которых нет в наличии в каждом из языков. Несмотря на некоторые различия, они очень похожи.

Одно из самых явных различий — IF в JOSS, позволяющий распределять каждый элемент после THEN, создавая его таким, чтобы он был максимально похож на возможности управления JOSS. Также Basic поменял порядок кода, расположив условный элемент в начале строчки, а не ближе к концу. Преимущество в данном случае состоит в том, что среда обладает возможностью сразу остановить чтение второй части элемента, когда введенные данные не настоящие.

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

При вводе/выводе используется метод, при помощи которого все без исключения символы преобразовываются в цифровые значения. В реализации Focal PDP-8 применяется плавающая запятая, хранящиеся в форме 12-битных слов. Это позволяет гарантировать непревзойденную точность и расширенный спектр значений.

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

Все что нужно знать о FOCAL

Время жизни языков программирования

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

Основные задачи сферы программирования сегодня заключаются в следующем:

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

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

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

Оцените статью
(0 оценок) 0 / 5
Читать предыдущую статью
Читать следующую статью
Заполни форму и получи грант на обучение