Jump to content

Напишите один раз, скомпилируйте где угодно

Напиши один раз, компилируй где угодно ( WOCA ) — это философия, принятая компилятором и связанными с ним программными библиотеками или программной библиотекой/ программной средой , которая относится к возможности написания компьютерной программы , которая может быть скомпилирована на всех платформах без необходимости внесения изменений. его исходный код . В отличие от лозунга Sun «Напиши один раз, запускай где угодно », кросс-платформенная совместимость реализуется только на уровне исходного кода, а не на уровне скомпилированного двоичного кода .

Введение

[ редактировать ]

Существует множество языков, которые следуют философии WOCA, например C++ , Pascal (см. Free Pascal ), Ada , Cobol или C , при условии, что они не используют функции, выходящие за рамки стандартной библиотеки . Такие языки, как Go, идут еще дальше, поскольку не используются никакие специфичные для системы вещи, они должны просто работать, а для специфичных для системы элементов используется система файлов, специфичных для платформы. Компьютерная программа также может использовать кроссплатформенные библиотеки, которые обеспечивают уровень абстракции, скрывающий различия между различными платформами, для таких вещей, как сокеты и графический интерфейс , обеспечивая переносимость написанного исходного кода. Это, например, поддерживается Qt (C++) или IDE Lazarus (Pascal) через LCL и соответствующие наборы виджетов .

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

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

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

Хотя это помогло решить часть проблемы, оно создало новую. Люди, которые писали программы или нанимали кого-то для их написания (до 1970-х или 1980-х годов покупка программного обеспечения не существовала), обнаружили, что когда их работодатель или школа купили новый компьютер, их программы больше не работали.

Разработка языков программирования высокого уровня

[ редактировать ]

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

К ним относятся:

  • BASIC , упрощенный язык программирования, который можно было использовать для создания сложных приложений «реального мира», а также простых программ для решения проблем, и был очень доступен для программистов-любителей. Благодаря простоте использования BASIC хорошо подходит для вводного курса по программированию во многих колледжах.
  • C язык программирования общего назначения, часто подходящий для написания программ, для которых в противном случае потребовался бы язык ассемблера.
  • Cobol — язык программирования общего назначения, который обычно использовался для разработки бизнес-приложений.
  • Фортран — язык программирования общего назначения, хорошо подходящий для решения научных и инженерных задач.
  • Паскаль — язык программирования общего назначения, который, как правило, предназначался для использования в школах в качестве вводного класса для обучения программированию в качестве альтернативы BASIC. Паскаль стал широко использоваться программистами-любителями в 1970-х и 1980-х годах, поскольку он был частью интегрированной среды разработки, позволяющей человеку редактировать, компилировать и запускать свои программы, обеспечивая немедленные результаты. Такие программы, как UCSD Pascal и Turbo Pascal, открыли мир программирования миллионам людей.
  • RPG предметно-ориентированный язык программирования, предназначенный для получения содержимого файлов данных, манипулирования данными и выполнения вычислений, а затем создания печатных отчетов, подобно тому, как сегодня человек может использовать электронную таблицу для организации данных и создания PDF- файлов.

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

Стандартизация

[ редактировать ]

Начиная с конца 1960-х и начала 1970-х годов, начались попытки создать стандарты и спецификации того, как машинно-независимые программы могут быть написаны с использованием компиляторов любого поставщика. Организации по стандартизации, такие как Международная организация по стандартизации (ISO) и ANSI , среди прочих, в сотрудничестве с крупными пользователями компьютеров и программного обеспечения (такими как правительства, финансовые учреждения и производители) и производителями компьютеров, для создания стандартизированных спецификаций, обеспечивающих описание того, как должен быть реализован каждый конкретный язык.

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

Результаты

[ редактировать ]

В настоящее время существует более дюжины языков программирования, в которых есть стандарты, описывающие, как следует писать программы на этом языке, включая Ada , APL , BASIC , C++ , COBOL , ECMAScript (общее имя для JavaScript ), Forth , FORTRAN , Pascal. , PL/I , Ruby и SQL . Многие из них в некоторых случаях до сих пор используются, потому что клиенты могли перенести свой исходный код на компьютер другого производителя, где он был перекомпилирован, часто без изменений, из-за стандартизации языков программирования.

Хотя стандарты помогли, философия WOCA работает только тогда, когда создатели составителей гарантируют, что они следуют стандарту.

См. также

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 98798ad20ae9fc7d5c51bae88cabf31b__1700606400
URL1:https://arc.ask3.ru/arc/aa/98/1b/98798ad20ae9fc7d5c51bae88cabf31b.html
Заголовок, (Title) документа по адресу, URL1:
Write once, compile anywhere - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)