Из каких разделов состоит программа, написанная на языке программирования Turbo Pascal
Обновлено: 24.11.2024
Введение
PASCAL — это язык программирования, названный в честь математика XVII века Блеза Паскаля. Язык Паскаль
Язык Pascal был первоначально разработан в 1971 году Никлаусом Виртом, профессором Политехнического института Цюриха, Швейцария. Паскаль был разработан как упрощенная версия для образовательных целей языка Алгол, который датируется 1960 годом.
Когда создавался Паскаль, существовало множество языков программирования, но лишь немногие из них получили широкое распространение: FORTRAN, C, ассемблер, COBOL. Ключевой идеей нового языка был порядок, управляемый с помощью строгой концепции типа данных и требующий объявлений и структурированных программных элементов управления. Этот язык также был разработан как средство обучения для студентов, изучающих программирование.
- предоставляет язык обучения, в котором выделяются концепции, общие для всех компьютерных языков
- стандартизирует язык таким образом, чтобы упростить написание программ
Строгие правила мешают программисту писать плохой код! Программа – это последовательность инструкций, сообщающих компьютеру о выполнении необходимой задачи.
Turbo Pascal был создан на основе компилятора Borland, который впервые предоставил IDE для разработки программ.
Основной формат каждой программы на языке Pascal
Каждая программа на языке Pascal имеет один и тот же основной формат, как показано ниже,
Некоторые допустимые ключевые слова для реализации Pascal:
Кроме того, Pascal НЕ чувствителен к регистру. Это означает, что Else и else обрабатываются одинаково.
Комментарии
вставляются в программы на Паскале путем заключения комментария в скобки < и >.
Pascal поддерживает ЧЕТЫРЕ стандартных типа переменных, которые
Пример добавления
Ввод с клавиатуры
Приведенная ниже программа считывает два числа с клавиатуры, присваивает их указанным переменным, а затем выводит их на экран консоли.
Если если/иначе
Для циклов
Переключить
МАССИВЫ
Массив может быть определен как тип, затем рабочая переменная создается следующим образом,
или с помощью оператора var следующим образом.
Нижний и Верхний определяют границы массива. Data_type — это тип переменной, которую будет хранить массив, например, тип int, char и т. д. Далее следует типичное объявление,
ПРОЦЕДУРЫ И ФУНКЦИИ
Pascal использует три типа модулей. Первые две называются ПРОЦЕДУРАМИ, а вторая — ФУНКЦИЕЙ.
- Простые процедуры не принимают никаких аргументов (значений или данных) при выполнении (вызове) процедуры.
- Сложные процедуры принимают значения для работы при их выполнении.
- Функции при выполнении возвращают значение (т. е. вычисляют ответ, который предоставляется модулю, которому нужен ответ)
Процедуры помогают поддерживать структурированный дизайн программы, позволяя разрабатывать модули независимо. Процедуры по сути являются подпрограммами.
Вот пример функции:
Процедура, которая принимает параметры:
Передать по ссылке
Чтобы заставить процедуру использовать переменные параметры, перед объявлением переменных (внутри круглых скобок после имени функции) используйте ключевое слово var.
В результате используются исходные переменные, а не их копии.
Записи
В следующей части кода показано, как определить запись, а затем создать рабочую переменную того же типа.
Первая часть определяет состав записи, обозначенной как studentinfo. Он состоит из двух частей (называемых полями).
Записи с записями
Определяет запись, элементы которой состоят из двух ранее объявленных записей. Заявление
объявляет рабочую переменную с именем today, которая имеет тот же состав, что и запись date_time. Заявления
УКАЗАНИЯ
Указатель обеспечивает косвенный доступ к значению определенного элемента данных. Я знаю класс cs355, давайте посмотрим на пример..пиееее. как интересно (у меня бред).
объявляет новый тип переменной с именем int_pointer, которая является указателем (обозначается ^) на целое число.
объявляет рабочую переменную с именем iptr типа int_pointer.
В настоящее время для iptr не выделено место для хранения, что означает, что вы не можете использовать его, пока не свяжете с ним некоторое пространство для хранения.
создает новую динамическую переменную (т. е. она создается, когда программа фактически запускается на компьютере). Переменная-указатель iptr указывает на расположение/адрес в памяти области хранения, используемой для хранения целочисленного значения.
означает освобождение (освобождение) дискового пространства, выделенного/связанного с iptr, и возврат его в компьютерную систему.
Строки
Затем объявляетсяMessage того же типа, что и STRING, т. е. упакованный массив символов, элементы которого пронумерованы от одного до восьми.
Однако Turbo Pascal позволяет упростить использование строк символов, предоставляя новое ключевое слово STRING.
Для задания на этой неделе мы будем использовать стандартный Pascal.
Прежде чем мы изучим основные строительные блоки языка программирования Pascal, давайте взглянем на минимальную структуру программы Pascal, чтобы использовать ее в качестве справочного материала в следующих главах.
Структура программы на Паскале
Программа Pascal в основном состоит из следующих частей —
- Название программы
- Использует команду
- Объявления типов
- Объявления констант
- Объявления переменных
- Объявления функций
- Объявления процедур
- Основной программный блок
- Утверждения и выражения в каждом блоке
- Комментарии
Каждая программа на Паскале обычно имеет заголовочный оператор, объявление и исполнительную часть строго в указанном порядке. В следующем формате показан основной синтаксис программы на Паскале —
Пример Hello World на Паскале
Ниже приведен простой код на Паскале, который напечатает слова "Hello, World!" −
Это даст следующий результат —
Давайте посмотрим на различные части вышеуказанной программы –
Первая строка программы программа HelloWorld; указывает название программы.
Вторая строка программы использует crt; — это команда препроцессора, которая указывает компилятору включить модуль crt перед тем, как перейти к фактической компиляции.
Следующие строки, заключенные в операторы begin и end, являются основным блоком программы. Каждый блок в Pascal заключен в операторы begin и end. Однако за оператором end, указывающим на конец основной программы, следует точка (.) вместо точки с запятой (;).
Выполнение программы начинается с оператора begin основного блока программы.
Строки внутри (*. *) будут игнорироваться компилятором, и это добавлено для добавления комментария в программу.
Утверждение writeln('Hello, World!'); использует функцию writeln, доступную в Pascal, которая вызывает сообщение «Hello, World!» для отображения на экране.
оператор readkey; позволяет приостановить отображение до тех пор, пока пользователь не нажмет клавишу. Это часть блока crt. Модуль подобен библиотеке в Паскале.
Конец последнего оператора. завершает вашу программу.
Скомпилировать и выполнить программу Pascal
Откройте текстовый редактор и добавьте вышеуказанный код.
Сохраните файл как hello.pas
Откройте командную строку и перейдите в каталог, в котором вы сохранили файл.
Введите fpc hello.pas в командной строке и нажмите Enter, чтобы скомпилировать код.
Если в вашем коде нет ошибок, командная строка переведет вас на следующую строку и сгенерирует исполняемый файл hello и объектный файл hello.o.
Теперь введите hello в командной строке, чтобы запустить программу.
Вы сможете увидеть надпись "Hello World" на экране, а программа будет ждать, пока вы не нажмете любую клавишу.
Pascal — влиятельный язык программирования , разработанный в 1968–1969 годах и опубликованный в 1970 году организацией структурирования данных .
Производное, известное как
Содержание
История [ ]
Паскаль, названный в честь французского математика и философа Модулы-2 и Оберона.
Изначально Pascal предназначался в основном, но не исключительно, для обучения студентов. [1] Поколение студентов использовало Pascal в качестве вводного языка на курсах бакалавриата. Варианты Паскаля также часто использовались для всего: от исследовательских проектов до [2]
Pascal был основным языком высокого уровня, используемым для разработки в операционной системе Macintosh, который был вручную переведен на язык ассемблера Motorola 68000 из исходных кодов Pascal. [3] Популярная система грамотного программирования на основе DEC Skype и Macromedia Captivate была написана на Delphi ( Free Pascal , с кратким описанием [ ]
Намерение Вирта состояло в том, чтобы создать эффективный язык (с точки зрения как скорости компиляции, так и сгенерированного кода) на основе так называемого языка ALGOL 60, а также представить концепции и механизмы, которые (помимо скаляров и массивов ALGOL) позволяли программистам определять свои собственные сложные (структурированные) типы данных, а также упрощает создание динамических и рекурсивных структур данных, таких как списки, деревья и графы. Важными функциями, включенными для этого, были записи, перечисления, поддиапазоны, динамически выделяемые переменные со связанными указателями< /i> и наборы. Чтобы сделать это возможным и осмысленным, в Pascal есть COBOL, реализации [ ]
Ошибка скрипта: Нет такого модуля "Обнаружение пространства имен". Ошибка скрипта: нет такого модуля "Обнаружение пространства имен".
Компиляторы раннего языка Pascal [ ]
Первый компилятор Pascal был разработан в Цюрихе для миникомпьютера Multum. Порт Multum был разработан с целью использования Паскаля в качестве языка системного программирования Финдли, Купплесом, Кавурасом и Дэвисом, работающими в Департаменте компьютерных наук в серии 2900, командой, основанной на компиляторе, написанном в Северной Америке. Дональд Б. Гиллис для системы Pascal-P [ ]
Для быстрого распространения языка в Цюрихе был создан «комплект для переноса» компилятора, который включал компилятор, генерирующий код для «виртуальной» стековой машины, т.е., код, пригодный для достаточно эффективной работы. интерпретация вместе с интерпретатором этого кода — системой Pascal-P. Компиляторы P-системы назывались Pascal-P1, Pascal-P2, Pascal-P3 и Pascal-P4. Pascal-P1 был первой версией, а Pascal-P4 — последней, выпущенной в Цюрихе.
Компилятор/интерпретатор Pascal-P4 по-прежнему можно запускать и компилировать в системах, совместимых с исходным Pascal. Однако он принимает только подмножество языка Pascal.
Pascal-P5, созданный вне группы Zurich, полностью поддерживает язык Pascal и обеспечивает совместимость с ISO 7185.
UCSD Pascal является ответвлением от Pascal-P2, где Кеннет Боулз использовал его для создания интерпретирующей p-системы UCSD. В начале 1980-х годов UCSD Pascal был перенесен на интерпретаторы Apple II и BASIC, которые поставлялись с машинами, а UCSD p-System была одной из трех операционных систем, доступных при запуске оригинальной [4]
Компилятор, основанный на компиляторе Pascal-P4, который создает собственные двоичные файлы, был выпущен для IBM System/370 Австралийской комиссии по атомной энергии; он назывался «Компилятор Pascal AAEC» по сокращению названия Комиссии.
В начале 1980-х годов Object Pascal, Turbo Pascal [ ]
Apple Computer создала свой собственный Lisa Pascal для Lisa Workshop в 1982 году и перенесла этот компилятор на Apple Macintosh и язык ассемблера, что сделало его [5] [6] Turbo Pascal 5.5 оказал большое влияние на сообщество Pascal, которое начало сосредоточившись в основном на IBM PC в конце 1980-х. Многие любители ПК в поисках структурированной замены BASIC использовали этот продукт. Его также начали принимать профессиональные разработчики. Примерно в то же время ряд концепций был напрямую импортирован из Microsoft Windows. Эти расширения включали Apple с завершающим нулем в качестве основы. (Этот проект Apple все еще не является формальным стандартом.) Соответственно первые версии языка Delphi назывались Object Pascal. Основными дополнениями по сравнению со старыми расширениями ООП были объектная модель на основе ссылок, виртуальные конструкторы и деструкторы, а также свойства. Некоторые другие компиляторы также реализуют этот диалект.
Turbo Pascal и другие производные с другими вариантами [ ]
Компиляторы[7] и Pascal-XSC [8] [9] [10] (EXtension for Scientific Computing), предназначенные для программирования численных вычислений. Первоначально Pascal-SC предназначался для процессора Z80, но позже был переписан для DOS (x86) и 68000. Pascal-XSC в разное время переносился на unix (Linux, SunOS, HP-UX, AIX) и Microsoft/IBM (MS- DOS с EMX, OS/2, Windows). Он работает, генерируя промежуточный исходный код C, который затем компилируется в собственный исполняемый файл. Некоторые расширения языка Pascal-SC были приняты языковыми конструкциями [ ]
Pascal в своей первоначальной форме представляет собой чисто ALGOL-подобные управляющие структуры с зарезервированными словами, такими как if, then, else, while, for и т. д. Однако Паскаль также имеет множество средств структурирования данных и других абстракций, которые не были включены в исходный АЛГОЛ 60 , например определения типов , АЛГОЛ 68 , C. A. R. Hoare .
Привет, мир [ ]
Программы на языке Pascal начинаются с программы [11] (не требуется в Turbo Pascal и т. д.); затем следуют основные операторы , а регистр Letter игнорируется в исходном коде Pascal.
Вот пример использования исходного кода для очень простого :
Типы данных [ ]
(Часто используемые типы, такие как byte и string, уже определены во многих реализациях.)
Типы поддиапазонов [ ]
Также можно создавать поддиапазоны любого порядкового типа данных (любого простого типа, кроме вещественного):
Установить типы [ ]
В отличие от других языков программирования того времени, Паскаль поддерживает тип множества:
Множество – это фундаментальное понятие современной математики, которое можно использовать во многих алгоритмах. Такая функция полезна и может быть быстрее, чем эквивалентная конструкция в языке, который не поддерживает наборы. Например, для многих компиляторов Pascal:
выполняется быстрее Ошибка скрипта: Нет такого модуля "Обнаружение пространства имен". Ошибка скрипта: нет такого модуля "Обнаружение пространства имен". [ необходима цитата ], чем:
Наборы несмежных значений могут быть особенно полезны с точки зрения производительности и удобочитаемости:
Для этих примеров, которые включают наборы в небольших доменах, повышение производительности обычно достигается за счет того, что компилятор представляет переменные набора в виде битовых масок. Объявления set Type [ ]
Типы могут быть определены из других типов с помощью объявлений типов:
Кроме того, сложные типы могут быть созданы из простых типов:
Тип файла [ ]
Как показано в приведенном выше примере, тип Pascal Pointer [ ]
Pascal поддерживает использование
Здесь переменная NodePtr является указателем на тип данных Node, запись. Указатели можно использовать до их объявления. Это
Это также можно сделать с помощью оператора with следующим образом:
В рамках оператора with a и b относятся к подполям указателя записи NodePtr, а не к узлу записи или типу указателя pNode.
Некоторые из этих ограничений могут быть сняты в новых диалектах.
Структуры управления [ ]
Pascal — это операторы, в идеале без команд 'goto'.
Процедуры и функции [ ]
Pascal структурирует программы в процедуры и функции.
Процедуры и функции могут быть вложены на любую глубину, а конструкция «программа» является логическим внешним блоком.
Каждая процедура или функция может иметь свои собственные объявления меток перехода, констант, типов, переменных и других процедур и функций, которые должны быть в указанном порядке. Это требование порядка изначально предназначалось для обеспечения эффективной однопроходной компиляции. Однако в некоторых диалектах (например, точка с запятой в качестве разделителя операторов [ ]
Pascal перенял многие особенности синтаксиса языка из языка ALGOL, в том числе использование точки с запятой в качестве разделителя операторов. Это отличается от других языков, таких как ALGOL-подобные пустые операторы в Revised Report 1973 г., и более поздние изменения языка в ISO 7185:1983 теперь допускают необязательные точки с запятой в большинстве этих случаев. По-прежнему нельзя ставить точку с запятой непосредственно перед ключевым словом else в операторе if, потому что else следует за одним оператор, а не последовательность операторов. В случае вложенных if нельзя использовать точку с запятой, чтобы избежать [13]
Программисты обычно добавляют эти дополнительные точки с запятой по привычке, чтобы избежать изменения последней строки при добавлении нового кода.
Ресурсы [ ]
Компиляторы и интерпретаторы [ ]
Для общего использования доступны несколько компиляторов и интерпретаторов Pascal:
- продукт для быстрой разработки приложений (RAD). Он использует язык Object Pascal (названный Borland «Delphi»), потомок Pascal, для создания приложений для платформы Windows. Поддержка .NET, существовавшая с D8 по D2005, D2006 и D2007, была прекращена и заменена новым языком (Prism, переименованным в Oxygene, см. ниже), который не полностью обратно совместим. В последние годы Free Pascal представляет собой многоплатформенный компилятор, написанный на .NET и RemObjects Software, а недавно созданный Embarcadero в качестве базового компилятора операционной системы Linux и улучшенной объектной библиотеки. Больше не поддерживается. Компилятор и IDE теперь доступны для некоммерческого использования.
- Коллекция компиляторов GNU (GCC). Сам компилятор написан на C, библиотека времени выполнения в основном на Pascal. Распространяется под лицензией GNU General Public License, работает на многих платформах и операционных системах. Он поддерживает стандартные языки ANSI/ISO и имеет частичную поддержку диалекта Turbo Pascal. Одним из наиболее болезненных упущений является отсутствие 100-процентно совместимого с Turbo Pascal (короткого) строкового типа. Поддержка Borland Delphi и других вариантов языка весьма ограничена. Однако есть некоторая поддержка Mac-pascal. aka DelphiWebScript — это интерпретатор, созданный Маттиасом Акерманном и Ханнесом Хернлером в 2000 году. Текущая версия использует диалект Object Pascal, в значительной степени совместимый с Delphi, но также поддерживает элементы языковых конструкций, введенные в Prism. Код DWScript можно встраивать в приложения Delphi, аналогичные PascalScript, компилировать в отдельное приложение с помощью SimpleMobileStudio или компилировать в код JavaScript и размещать на веб-странице. [14] — это интерпретатор, работающий под управлением Standard Pascal. Примечательным является режим «видимого выполнения», который показывает работающую программу и ее переменные, а также обширную проверку ошибок во время выполнения. Запускает программы, но не создает отдельный исполняемый двоичный файл. Работает в DOS, Windows в окне DOS и старых Macintosh. проверено на DOS, Windows 3.1, 95, 98, NT.
- Virtual Pascal был создан Виталием Мирьяновым в 1995 году как собственный компилятор OS/2, совместимый с синтаксисом Borland Pascal. Затем он был коммерчески разработан компанией fPrint с добавлением поддержки Win32, а в 2000 году стал бесплатным. Сегодня он может компилироваться для Win32, OS/2 и Linux и в основном совместим с Borland Pascal и Delphi. Разработка была прекращена 4 апреля 2005 г., что стало основой для многих последующих компиляторов Pascal, реализованных в Pascal.Он реализует подмножество полного Паскаля. , является адаптацией P4 для стандарта ISO 7185 (полный Паскаль).
- IP Pascal Реализует язык Pascaline (названный в честь Pascal-XT, созданного SINIX).
- Vector Pascal Vector Pascal — это язык для Morfik Pascal, позволяющий разрабатывать веб-приложения, полностью написанные на Object Pascal (как на стороне сервера, так и на стороне браузера). – Visual Development Environment и компилятор Pascal для Win32 и OS/2. Исходный код первого (CDC 6000) компилятора Pascal. [15] – AmigaPascal, бесплатный компилятор Pascal для Amiga-Computer.
Очень обширный список можно найти на Pascaland. Сайт на французском языке, но в основном это список с URL-адресами компиляторов; для нефранкоязычных барьеров нет. Также может представлять интерес сайт Pascal Central, информационный и пропагандистский сайт Pascal, ориентированный на Mac, с богатой коллекцией архивов статей, а также ссылками на множество компиляторов и руководств.
Библиотеки [ ]
Библиотека WOL для создания приложений с графическим интерфейсом с помощью компилятора Free Pascal.
Стандарты [ ]
В 1983 году язык был стандартизирован в соответствии с международным стандартом IEC/ISO 7185 и несколькими местными стандартами, в том числе американскими ANSI/IEEE770X3.97-1983 и ISO 7185:1983. Эти два стандарта отличались только тем, что стандарт ISO включал расширение «уровня 1» для совместимых массивов, тогда как ANSI не разрешал это расширение для исходного (версия Вирта) языка. В 1989 году стандарт ISO 7185 был пересмотрен (ISO 7185:1990) для исправления различных ошибок и неясностей, обнаруженных в исходном документе.
В 1990 году был создан расширенный стандарт Pascal под названием ISO/IEC 10206. В 1993 году стандарт ANSI был заменен организацией ANSI на "указатель" на стандарт ISO 7185:1990, что фактически лишило его статуса отдельного стандарта. .
Стандарт ISO 7185 был заявлен как разъяснение языка Вирта 1974 года, как подробно описано в Руководстве пользователя и отчете [Дженсен и Вирт], но также был примечателен добавлением «Параметры совместимого массива» в качестве уровня 1 к стандарту, уровень 0 - это Паскаль без соответствующих массивов. Это дополнение было сделано по просьбе C.A.R. Hoare и с одобрения Никлауса Вирта. Ускоряющей причиной было то, что Хоар хотел создать Паскаль-версию библиотеки числовых алгоритмов (NAG), которая изначально была написана на FORTRAN, и обнаружил, что это невозможно сделать без расширения, которое позволило бы параметры массива переменного размера . Аналогичные соображения мотивировали включение в ISO 7185 возможности указывать типы процедурных и функциональных параметров.
Обратите внимание, что сам Никлаус Вирт называл язык 1974 года «Стандартом», например, чтобы отличить его от машинных особенностей компилятора CDC 6000. Этот язык был задокументирован в «Отчете по Pascal», второй части «Руководства пользователя и отчета по Pascal».
На больших машинах (мейнфреймах и миникомпьютерах), на которых был создан Pascal, обычно соблюдались стандарты. На IBM-PC их не было. На IBM-PC стандарты Borland Turbo Pascal и Delphi имеют наибольшее количество пользователей. Таким образом, обычно важно понимать, соответствует ли конкретная реализация исходному языку Pascal или его диалекту Borland.
Версии языка для IBM-PC начали различаться с появлением UCSD Pascal, интерпретируемой реализации, которая включала несколько расширений языка, а также несколько упущений и изменений. Многие функции языка UCSD сохранились и сегодня, в том числе в диалекте Borland.
Варианты [ ]
Цюрихская версия Pascal Никлауса Вирта была выпущена за пределами UCSD Pascal под руководством профессора Кеннета Боулза, была основана на наборе Pascal-P2 и, следовательно, разделяла некоторые языковые ограничения Pascal-P. UCSD Pascal позже был принят как Apple Pascal и продолжал существовать в нескольких версиях. Хотя UCSD Pascal фактически расширил подмножество Pascal в наборе Pascal-P, вернув стандартные конструкции Pascal, он по-прежнему не был полной стандартной установкой Pascal.
Список связанных стандартов Borland [ ]
Pascal вызвал множество откликов в компьютерном сообществе, как критических, так и хвалебных.
Критика [ ]
Ошибка скрипта: Нет такого модуля "Обнаружение пространства имен".
Хотя в 1980-х и начале 1990-х годов язык Паскаль был очень популярен, его реализации, точно соответствующие первоначальному определению языка Вирта, подвергались широкой критике за то, что они непригодны для использования вне обучения. [16] Самая серьезная проблема, описанная в его статье, заключалась в том, что размеры массивов и длины строк были частью типа, поэтому было невозможно написать функцию, которая принимала бы массивы переменной длины или даже строки в качестве параметров. Это сделало невозможным написание, например, библиотеки сортировки.Автор также подверг критике непредсказуемый порядок вычисления логических выражений, плохую поддержку библиотек и отсутствие [17][18] отметил, что область действия объявлений не была четко определена в исходном определении языка, что иногда имело серьезные последствия при использовании ALGOL. 60, язык не позволял процедурам или функциям, передаваемым в качестве параметров, предопределять ожидаемый тип своих параметров.
С другой стороны, многие крупные разработки в 1980-х годах, например, для Macintosh Toolbox, должны были использовать типы данных Pascal).
Реакции [ ]
Pascal продолжал развиваться, и большинство замечаний Кернигана не применимы к версиям языка, которые были улучшены, чтобы быть пригодными для разработки коммерческих продуктов, например ошибка сценария Borland: нет такого модуля «Обнаружение пространства имен». [ оригинальное исследование? ]
Хотя Керниган осудил отсутствие в Паскале экранов типов ("нет выхода" из статьи "Почему Паскаль не мой любимый язык программирования"), неконтролируемое использование Модулы-2, Оберон и ошибка скрипта: Нет такого модуля "Обнаружение пространства имен ". Ошибка скрипта: нет такого модуля "Обнаружение пространства имен". [ необходима ссылка ]
Созвездие Corvus Systems (новаторский компьютер 1980-х годов) основано на интерпретирующем программном обеспечении Pascal, которое пользователь может редактировать во время выполнения. В руководстве была напечатана большая часть кода Pascal, который также был на диске.
Интегрированные среды разработки (IDE) — это приложения, облегчающие разработку других приложений. Одно из основных преимуществ интегрированной среды разработки, предназначенной для выполнения всех задач программирования в одном приложении, заключается в том, что они предлагают центральный интерфейс со всеми инструментами, необходимыми разработчику, включая:
- Редактор кода. Эти редакторы, предназначенные для написания и редактирования исходного кода, отличаются от текстовых тем, что упрощают или улучшают процесс написания и редактирования кода для разработчиков.
- Компилятор: компиляторы преобразуют исходный код, написанный на понятном человеку языке, в форму, которую могут выполнять компьютеры.
- Отладчик. Отладчики используются во время тестирования и могут помочь разработчикам отладить свои прикладные программы.
- Инструменты автоматизации сборки. С их помощью можно автоматизировать наиболее распространенные задачи разработчиков, чтобы сэкономить время.
Кроме того, некоторые IDE могут также включать:
- Обозреватель классов: используется для изучения и ссылки на свойства объектно-ориентированной иерархии классов.
- Обозреватель объектов: используется для проверки объектов, созданных в работающем приложении.
- Диаграмма иерархии классов: позволяет разработчикам визуализировать структуру кода объектно-ориентированного программирования.
Среда IDE может быть автономным приложением, хотя она также может быть включена в состав одного или нескольких совместимых приложений.
Узнайте об интеграции Veracode
История IDE
До появления IDE программисты писали свои программы в текстовых редакторах. Это включало в себя написание и сохранение приложения в текстовом редакторе перед запуском компилятора, принятие к сведению любых сообщений об ошибках, а затем возвращение в текстовый редактор для проверки их кода.
Только в 1983 году компания Borland Ltd. приобрела компилятор Pascal и опубликовала его как TurboPascal, в котором впервые были интегрированы редактор и компилятор.
TurboPascal, возможно, положил начало идее интегрированной среды разработки, но многие считают, что Visual Basic (VB) от Microsoft, выпущенный в 1991 году, на самом деле был первой настоящей IDE в истории. Построенный на старом языке BASIC, Visual Basic был популярным языком программирования в 1980-х годах. Развитие Visual Basic означало, что вместо этого программирование можно было рассматривать в графических терминах, и стали очевидны заметные преимущества производительности.
Преимущества использования IDE
Интегрированные среды разработки повышают продуктивность разработчиков. Эти интегрированные среды разработки повышают производительность за счет сокращения времени установки, повышения скорости выполнения задач разработки, предоставления разработчикам последних рекомендаций и угроз, а также стандартизации процесса разработки, чтобы каждый мог присоединиться к ней.
- Быстрая установка. Программистам приходится тратить время на настройку нескольких инструментов разработки без наличия интерфейса IDE. Благодаря интеграции IDE программисты могут иметь один и тот же набор возможностей в одном месте без необходимости постоянно переключаться между инструментами.
- Ускорение задач разработки. Более тесная интеграция задач разработки означает повышение производительности разработчиков. Например, разработчики могут анализировать код и проверять синтаксис во время редактирования, что позволяет мгновенно реагировать на появление синтаксических ошибок. Программистам больше не нужно переключаться между приложениями для завершения задач. Кроме того, инструменты и функции IDE помогают программистам упорядочивать ресурсы, предотвращать ошибки и реализовывать ярлыки.
Чтобы получить еще больше преимуществ, IDE могут помочь реструктурировать процесс разработки, продвигая целостную стратегию. Они заставляют программистов думать о своих действиях с точки зрения всего жизненного цикла разработки (SDLC), а не серии отдельных задач.
- Постоянное обучение. Еще одним преимуществом является возможность оставаться в курсе последних событий и быть в курсе последних событий. Например, разделы справки IDE постоянно обновляются вместе с новыми примерами, шаблонами проектов и т. д. Разработчики, которые постоянно учатся и следят за лучшими практиками, с большей вероятностью принесут пользу своей команде и предприятию, повысив производительность.
- Стандартизация. Кроме того, она регулирует процесс разработки, помогая программистам без проблем работать вместе и помогая новым сотрудникам освоиться, чтобы они могли сразу приступить к работе.
Языки, поддерживаемые IDE
В некоторых случаях интегрированные среды разработки предназначены для определенного языка программирования или набора языков, что создает набор функций, соответствующий специфике этого языка. Например, Xcode для языков Objective-C и Swift, API Cocoa и Cocoa Touch.
Однако многоязычные IDE, такие как Eclipse (C, C++, Python, Perl, PHP, Java, Ruby и др.), Komodo (Perl, Python, Tcl, PHP, Ruby, Javascript и др.) и NetBeans (Java , JavaScript, PHP, Python, Ruby, C, C++ и другие) существуют.
Разработчики часто могут найти поддержку альтернативных языков с помощью подключаемых модулей. Например, Flycheck — это расширение для проверки синтаксиса для GNU Emacs 24 с поддержкой 39 языков.
Различные типы IDE
Существует множество способов, с помощью которых разработчики работают над созданием различных типов кода, а это значит, что существует множество IDE, которые они могут использовать. Некоторые из них предназначены для работы с одним конкретным языком, в то время как другие представляют собой облачные IDE, IDE, настроенные для создания мобильных приложений или HTML, а также IDE, предназначенные специально для разработки Apple или Microsoft.
Многоязычная среда разработки
Многоязычные IDE, такие как Eclipse, Aptana, Komodo, NetBeans и Geany, поддерживают несколько языков программирования.
IDE для процессов мобильной разработки
Специально для разработки мобильных приложений существуют интегрированные среды разработки, включающие PhoneGap и Titanium Mobile от Appcelerator.
Многие IDE, особенно многоязычные IDE, имеют подключаемые модули для разработки мобильных приложений. Eclipse, например, имеет эту функцию.
HTML-IDE
Среды IDE для разработки HTML-приложений являются одними из самых популярных IDE. Например, DreamWeaver, HomeSite и FrontPage автоматизируют множество задач, связанных с процессом разработки веб-сайта.
Облачная IDE
Облачные IDE становятся все более популярными, и за ними нужно следить. Возможности таких сетевых IDE быстро растут; по этой причине большинству крупных поставщиков, вероятно, придется предлагать его, если они хотят оставаться конкурентоспособными на своих рынках. Облачные IDE важны, потому что они предоставляют программистам доступ к своему коду из любого места.
Например, Nitrous — это облачная платформа среды разработки, поддерживающая Ruby, Python, Node.js и другие. Cloud9 IDE поддерживает более 40 языков, включая PHP, Ruby, Python, JavaScript с Node.js и Go. Heroku — это облачная платформа разработки как услуга (PaaS), поддерживающая несколько языков программирования.
IDE для Apple или Microsoft
Следующие IDE предназначены для программистов, работающих в средах Microsoft или Apple:
IDE для определенных языков
Существуют специальные IDE, предназначенные для программистов, работающих на одном языке. К ним относятся Jikes и Jcreator для Java, CodeLite и C-Free для C/C++, RubyMine для Ruby/Rails и Idle для Python.
Безопасность приложений и интегрированная среда разработки.
Несмотря на то, что безопасность приложений является важнейшим приоритетом для групп разработчиков, управление тестированием безопасности в интегрированной среде разработки часто представляло собой серьезную проблему. Разработчики, стремящиеся уложиться в сроки в гибких или каскадных процессах разработки программного обеспечения, часто уже используют множество отдельных инструментов. Новая технология AppSec, в которой отсутствуют гибкие API-интерфейсы и которую сложно использовать в интегрированной среде разработки, часто не будет принята, что приведет к большим проблемам безопасности и еще большему затруднению в соблюдении требований нормативных рамок, таких как соответствие требованиям HIPAA и SarbOx.
Для повышения безопасности приложений Veracode предлагает набор решений для тестирования безопасности настольных компьютеров, веб-приложений и мобильных приложений в облачной службе, которые можно легко объединить в интегрированной среде разработки для поиска и устранения недостатков в любой точке SDLC.
Руководство по безопасному программированию
Решения Veracode для интегрированной среды разработки
Veracode – ведущий поставщик технологий тестирования безопасности приложений, которые позволяют предприятиям и группам разработчиков обеспечивать безопасность создаваемого, приобретаемого и собираемого программного обеспечения. Как простой в использовании сервис на основе SaaS, Veracode позволяет разработчикам тестировать уязвимости на протяжении всего процесса разработки без необходимости открывать новую среду или изучать новый инструмент. Платформа Veracode Application Security Platform интегрируется с интегрированной средой разработки разработчика, а также с инструментами безопасности и отслеживания рисков, которые разработчики уже используют. Гибкие API-интерфейсы позволяют командам разработчиков создавать индивидуальные интеграции или использовать интеграции сообщества, созданные сообществом открытого исходного кода и другими технологическими партнерами. .
Veracode интегрируется с Eclipse, IBM RAD и другими IDE на основе Eclipse, IntelliJ и Visual Studio. Перед проверкой кода Veracode позволяет разработчикам запустить сканирование, просмотреть результаты и результаты сортировки из интегрированной среды разработки.
Решения Veracode для тестирования интегрированной среды разработки включают статический анализ, сканирование веб-приложений, анализ состава программного обеспечения, тестирование безопасности приложений поставщиков и многое другое.
Veracode Static Analysis IDE Scan: тестирование в интегрированной среде разработки.
Veracode Static Analysis IDE Scan – это решение для тестирования безопасности, которое позволяет сканировать прямо в интегрированной среде разработки, чтобы проверять наличие уязвимостей при написании кода разработчиками. Сканирование Veracode Static Analysis IDE выполняется в фоновом режиме интегрированной среды разработки и обеспечивает немедленную обратную связь о потенциальных уязвимостях, выделяя код, в котором могут быть ошибки, и предоставляя контекстные советы о том, как это исправить. Veracode Static Analysis IDE Scan позволяет определить тип ошибки, такой как внедрение кода SQL или переполнение буфера, а также серьезность ошибки и точную строку кода, в которой находится ошибка.
Узнайте больше о тестировании безопасности в интегрированной среде разработки Veracode или обратитесь к базе знаний Veracode AppSec, чтобы получить ответы на такие вопросы, как "Что такое интегрированная среда разработки?" и "Что такое червь?"
Есть два конца программы XE "конец программы": физический конец XE "физический конец" и логический конец. Физический конец — это последний оператор в программе. Логический конец — это место, где программа останавливает выполнение. В языковой семье C последняя фигурная скобка > используется для завершения программы. Например, в C++ у нас есть:
> // физический конец программы.
Одна из проблем (или преимуществ) такого подхода заключается в том, что все виды блоков и составных операторов используют один и тот же символ для окончания. Другие языки используют определенный оператор (например, END ) для завершения программы, который больше нигде не используется. В этих языках мы знаем, что когда мы видим оператор END, мы завершаем программу, а не просто завершаем составной оператор или блок.
В других языках есть несколько способов завершения выполнения программы. Например, PL/I XE «PL/I :program ends» имеет четыре пути: конец, остановка, выход и возврат. Оператор end — это последняя строка программы или функции. Операторы остановки или возврата используются для нормального завершения, а выход используется для аварийного завершения. Операторы return немного рассматриваются в этой главе, но более подробно они рассматриваются в главе о функциях.
Окончания на разных языках
Большинство ранних программ FORTRAN или BASIC имели примерно такое окончание:
Инструкция END является последней строкой в основной программе и во всех подпрограммах или функциях. Поскольку оператор END XE "оператор END" является неисполняемым оператором, программа не может перейти к оператору END. (Эта проблема подробно обсуждается в разделе «Размещение меток в программе» главы «Ярлыки».) Оператор STOP XE «оператор STOP» является логическим завершением основной программы. И оператор номер 10 в операторе STOP может быть разветвлен по мере необходимости.
ALGOL использовал те же операторы остановки и завершения, что и в FORTRAN. Но ALGOL имеет блоки и использует начало и конец для блочной структуры. Таким образом, операторы begin и end ALGOL эквивалентны открывающей XE "< открывающей скобке " и закрывающей скобке XE " > закрывающей скобке " в языках семейства C. Таким образом, конец ALGOL используется для обозначения конца составных операторов и конца программы, как это делает семейство C с закрывающими фигурными скобками.
Pascal использует оператор end для обозначения конца составных операторов и программы. Но за конечным оператором в Паскале должна следовать точка. Таким образом, «конец» — это конец составного оператора или блока, но «конец. ” (конечный период XE "конечный период") - конец программы. Таким образом, в Паскале есть специальная команда для завершения программы.
COBOL не имеет конечного оператора. Последнее утверждение является последним утверждением, и на этом все.При взгляде на другие языки это кажется немного странным, но с миллионами программ на языке COBOL это работает нормально.
Программисты Ruby используют “ __END__ XE " __END__ : Ruby " " (два символа подчеркивания до и после END ) без начального или конечного пробела, чтобы завершить свои программы, и любые последующие операторы не будут скомпилированы. Ruby и Awk имеют блоки END, которые выполняются при закрытии программ, и они обсуждаются в главе «Блок».
Таким образом, некоторые языки с конкретным оператором для физического конца программы — это BASIC, FORTRAN и Pascal. И, кажется, я дошел до конца этой темы.
Помеченные концы
В некоторых языках для завершения программы используется оператор end XE " end : labeled " и имя функции, программы или процедуры. Например, в Аде есть процедуры (похожие на функции или методы), и имя процедуры используется с оператором end. Например, вот процедура Ады для замены двух значений:
процедура swap(a, b: in out elem )
temp : элемент ;
Таким образом, процедура называется swap и используется для того, чтобы пометить XE как "помеченный конец" оператора end.
FORTRAN содержит программы, подпрограммы и функции. В FORTRAN 90 каждая единица имеет собственное закрывающее выражение конца, и имя единицы может быть дополнительно присоединено. Например, у нас могут быть следующие конечные операторы:
конец программы main ! имя программы main
завершить обмен функциями ! имя функции swap
конец заголовка подпрограммы ! заголовок подпрограммы
Имена этих модулей необязательны, но если они есть, они должны совпадать с именем, указанным в операторе программы, функции или подпрограммы. В FORTRAN функции возвращают одно значение через имя функции, тогда как подпрограммы возвращают значения по списку аргументов. Visual Basic аналогично использует операторы end, указывающие на то, что блок завершается.
PL/I использует аналогичные операторы конца метки. Вот программа подкачки в PL/I:
своп : процедура(а, б); /* обратите внимание на точку с запятой */
объявить a, b, temp с плавающей запятой;
Снова замена имени процедуры используется для имени процедуры и для окончательного оператора завершения. Этот метод используется в PL/I для основной программы, подпрограмм и функций.
Остановка программы
Для остановки выполнения программы требуется оператор или что-то еще. Это логический конец XE "логический конец" программы. В C++ мы могли бы просто:
cout endl ;
> // логический конец программы.
В этой замечательной программе последняя фигурная скобка XE "brace :ending" (иногда называемая закрытой фигурной скобкой XE "curly brace:see brase") указывает на логический конец XE "end:program" программы. Этот метод окончания называется отвалом от конца XE «отрывом от конца» и считается неэлегантным. Мы могли бы быть более политкорректными XE «политкорректными» (ПК), если бы сделали следующее:
cout endl ;
возврат(0); // логический конец программы.
Поэтому в C++ и других подобных языках оператор return XE "return" используется для остановки выполнения XE "execution :stopping" программы в main().
Хотя у нас может быть только один физический конец (например, конец или закрывающая фигурная скобка) программы, у нас может быть одно или несколько логических окончаний или операторов возврата. Например:
if (x return(1); // ошибка в конце программы.
возврат(0); // нормальный конец программы.
Теперь мы можем остановить выполнение программы с помощью оператора return в операторе if. Или мы можем остановить выполнение программы с помощью оператора return перед закрывающей фигурной скобкой. Когда вы доберетесь до раздела о кодах возврата позже в этой главе, я расскажу о значениях (1 или 0) в операторах возврата.
Проблема с использованием оператора return для остановки программы заключается в том, что мы можем захотеть остановить программу, находясь в функции или подпрограмме. Но если мы находимся в функции, то оператор return просто вернет нас к основной или вызывающей программе. Вот почему в некоторых языках есть отдельная команда для остановки выполнения. C++ использует функцию выхода XE "exit: function" () для завершения выполнения программы. Вот пример:
если (x выход(1);
Выход ( ) — это функция, а не команда. В отличие от оператора return, это приведет к остановке выполнения программы даже в функции. И функция exit ( ) также может возвращать значение при выполнении, как и оператор return. Таким образом, в семействе C есть три способа завершить программу: exit(), return и завершающая закрывающая скобка.
Операции FORTRAN, BASIC и COBOL STOP
И FORTRAN, и BASIC имеют оператор STOP. Оператор STOP не может возвращать значение, подобное выходу ( ) в C++. В программе есть только один оператор END, но может быть несколько операторов STOP. У нас может быть что-то подобное на этих языках:
ЕСЛИ (x 0 ) СТОП
Или мы можем изменить приведенное выше на следующее, чтобы был только один оператор STOP:
150 СТОП
Некоторые люди утверждают, что один из них лучше другого, но я не буду участвовать в этом споре. Оператор STOP обычно используется, но не является обязательным, так как об этом позаботится оператор END. Таким образом, мы можем упасть с конца XE, "упасть с конца" программы (нажать оператор END), и программа также остановится.
COBOL использует STOP RUN XE " STOP RUN : COBOL " для завершения программы, что иллюстрирует идею о том, что программисты COBOL всегда будут использовать больше слов, если смогут. Как и его аналог в FORTRAN, у нас может быть несколько операторов STOP RUN, и если у нас их нет, программа все равно остановится после обработки последнего оператора.
Коды возврата
FORTRAN Я разрешил восьмеричное целое число после оператора STOP следующим образом:
Восьмеричное целое число, называемое кодом возврата XE «код возврата», будет отображаться на консоли IBM 704 в адресном поле регистра хранения, и программист сможет увидеть, какой STOP остановил программу. Это было задолго до разделения времени. Тогда вы могли бы посмотреть на консоль и увидеть, какое число там было, и узнать, почему программа остановилась. Одновременно могла выполняться только одна программа, поэтому программист получил машину и консоль. Трудно понять, почему короткий оператор печати, указывающий на проблему, не может быть более полезным. Хотя в настоящее время это может показаться причудливым использованием операторов STOP, мы можем видеть, как оно превратилось в аналогичные варианты использования.
Это использование не просто историческое примечание, поскольку IBM Job Control Language использует коды условий XE «коды условий», а языки семейства C используют целое число в своих операторах возврата, чтобы указать на успех или неудачу выполнения программы. р>
Обычаем языков семейства C является возврат нулевого значения в случае успешного выполнения программы. Таким образом, мы используем:
Ненулевое значение указывает на проблему или неуспешное выполнение программы. Таким образом, мы могли бы использовать что-то вроде этого:
если (х вернуть(1);
Для указания типа ошибки могут использоваться разные целые числа. Этот тип информации полезен, так как часто одна программа вызывает другую программу, и первая программа должна знать, успешно ли выполнена вторая программа. Например, одна программа может обрабатывать и подготавливать данные, а затем запрашивать программу сортировки для сортировки файла данных. Если сортировка работает правильно, то можно вызвать третью программу для печати данных. Это все отдельные программы.
Коды состояния IBM
IBM XE "IBM JCL" Язык управления заданиями XE "Язык управления заданиями" (JCL XE "JCL") использовал код условия для обозначения относительного успеха шага задания. Нулевой код состояния может указывать на успешный запуск. IBM назначила определенные номера кодов состояний, которые обычно указывают на какую-то проблему и не должны игнорироваться. Эти числа кратны четырем: 0004, 0008, 0012, 0016, 0020 и 0024. Различные коды имели предполагаемое значение. Коды 0001-0003 обычно указывают на успешный запуск. Код 0004 (или выше) использовался для возможной ошибки, но выполнение было возможно. Код 0008 (или выше) является серьезной ошибкой, и каждое большее число в приведенном выше списке указывает на более серьезную ошибку.
Функция штампа PHP
В PHP есть команды выхода и возврата, которые выполняют обычные действия, а также функция die(). Функция die XE «die: function» () остановит выполнение программы и вернет выражение в браузер непосредственно перед прерыванием скрипта. Вот немного PHP-кода:
$file = fopen ( $filename, ‘r’) или
die("невозможно открыть $filename");
Эта функция die() не ограничивается выходом или возвратом, поскольку она может возвращать выражение, такое как строка символов, перед завершением программы.
Perl имеет аналогичную функцию die, которая также часто используется в правой части логического или, как показано ниже:
открыть( ФАЙЛ, «мой файл») или умереть «Не удается открыть мой файл\n;
Вывод die отправляется в стандартную ошибку, и программа завершается. В Perl есть менее разрушительная функция, называемая warn XE «warn: function», которая также отправляет сообщения в стандартную ошибку, но программа не завершается. Хотя die часто используется справа от команды open, ее можно использовать и во многих других местах. Команда Perl die также имеет доступ к специальной переменной $! XE " $! : Perl ", который содержит самое последнее системное сообщение об ошибке.
Положение о паузе
У FORTRAN был оператор PAUSE XE " PAUSE ". Он использовался для остановки компьютера таким образом, чтобы выполнение могло быть возобновлено. Это было необходимо, чтобы специальная бумага (зарплата XE «зарплата: пауза») или магнитная лента XE «магнитная лента: пауза» могла быть загружена в машину для следующей части обработки задания. Один из вариантов оператора PAUSE может выглядеть следующим образом:
ПАУЗА "МОНТАЖ СЛЕДУЮЩЕЙ ЛЕНТЫ"
Думаю, пора остановиться (0) или сделать паузу в этой теме. Бьюсь об заклад, некоторые из вас не знали всех способов плавной остановки программы.В COBOL JCL использовался, чтобы сообщить нам, что нужно установить ленту или заменить бумагу для принтера.
Заключение
В этом разделе, посвященном завершению программы, я сначала разделяю логический конец и физический конец программы. Физическим концом программы является последняя фигурная скобка во многих языках, но в других языках используется специальная команда, например оператор end.
Логический конец программы — это команда, которая останавливает выполнение программы, и этот конец может быть размещен в любом месте программы. Существует множество команд для прекращения выполнения программы, включая операторы stop, exit и return. И многие языки могут возвращать код выхода при остановке программы. Читатели, интересующиеся темами, затронутыми в этом разделе, должны также ознакомиться с оператором return в главе «Функции».
Вопросы
- Как вы предлагаете оформить окончание наших программ в OPL? Вам нужно смотреть на операторы остановки и окончания.
- Должны ли мы использовать специальный помеченный оператор end для завершения программы, как это делается в Ada или FORTRAN?
- Некоторые языки используют операторы выхода для возврата значения, указывающего на успех или неудачу этой программы или функции. Должны ли мы делать это в OPL, и если да, то как?
- То, что именно делает выход, зависит от языка. Найдите выход в нескольких языковых семьях. Является ли выход командой или функцией в этих языках? Обязательно найдите выход в PL/I и COBOL.
Удивительно, как часто требуется инструкция, команда или слово программирования, которые ничего не делают. Существует несколько вариантов, которые включают пустые операторы, фиктивные команды XE «фиктивные команды» и шумовые слова. Очевидная полезность фиктивного или нулевого оператора похожа на историю математики, когда они «открыли», что ноль — это интересное число. Ненужные (ненужные) слова используются для облегчения чтения инструкций или помощи программистам, использующим другой язык.
Вот пример, когда оператор null позволяет нам избежать серьезных размышлений или совершить грубую логическую ошибку:
<р>; / * нулевой оператор, здесь ничего не делать. */количествоx = количествоx + 1;
В этом примере мы не хотим ничего делать, когда условие истинно, но мы хотим увеличить countx, когда условие ложно. В приведенном выше примере, если бы у нас не было нулевого утверждения, мне пришлось бы выяснить, как обратить сравнение в приведенном выше утверждении if, и вероятность получить это правильно примерно так же вероятно, как мое избрание губернатором. Вместо этого мы просто используем нулевой оператор XE "null statement". [1]
Нулевые операторы также используются для тела цикла, когда вся работа выполняется в выражениях. Например, вот код JavaScript:
for( k = 0; k кодов.длина ; коды [k++] = 0)
<р>; // здесь пустой оператор.В приведенном выше операторе я устанавливаю все элементы кодов массива в ноль, увеличивая индекс массива ( k++ ) в последней части оператора for.
Нулевые операторы можно использовать, чтобы избежать висячего else , особенно во вложенном операторе if. Вот некоторый псевдокод:
если (условие-1), то
если (условие-2), то утверждение-1
еще ; //пустой оператор
Первый оператор else имеет нулевое выражение, а затем последний оператор else может использоваться для сопоставления с первым оператором if вместо второго оператора if.
Читайте также: