Одной из проблем, связанных с совпадением нулевого символа, является то, что вам сначала нужно договориться о его получении. Во многих языках используются строки с нулевым символом в конце, поэтому совпадение может не совпадать со всем вводом.
Что касается того, как выразить это в PCRE, то \ 000 работает и не будет споткнуться о чем-либо, что следует за ним, как было бы \ x {} (но восьмеричная версия, на мой взгляд, легче идентифицировать, когда просматривает регулярное выражение ).
См. справочные страницы PCRE и найдите непечатаемых символов для получения полной информации о том, как задавать ноль различными способами.
Я выучил COBOL примерно в 1978 году на ICL 2903. Я смутно помню, что заголовкам SECTION может быть назначен диапазон номеров, что означает, что эти заголовки SECTION могут выгружать и выгружать из памяти, когда программа была слишком большой для памяти.
Во-первых, имена абзацев должны быть уникальными, если они не находятся в отдельных разделах, поэтому разделы допускают «пространство имен» абзацев.
Если я правильно помню, единственная причина, по которой вы ] должен использовать РАЗДЕЛ
предназначен для ДЕКЛАРАТИВОВ
. Кроме того, они необязательны и в первую очередь полезны для группировки абзацев. Я думаю, что это обычное явление (во всяком случае, условно говоря) требовать, чтобы PERFORM
использовался в абзацах, только когда они находятся в одном разделе.
В разделе может быть несколько абзацев. Когда вы ВЫПОЛНЯЕТЕ раздел, он выполняет все абзацы в разделе. Внутри раздела вы можете использовать PERFORM или GOTO для перехода к абзацам в разделе.
Мы используем COBOL SECTION кодирование во всех наших 37K MVS пакетных COBOL программах. Мы используем эту технику, чтобы получить гораздо более быстрое время выполнения и значительно снизить нагрузку на процессор. Эта техника кодирования COBOL очень похожа на высокопроизводительный пакетный ассемблер.
Называйте это высокопроизводительным функционально структурированным программированием COBOL
После определения РАЗДЕЛА все PERFORM xxxxx будут возвращаться в следующий закодированный РАЗДЕЛ, а не в следующий параграф РАЗДЕЛА. Если параграфы закодированы впереди первого РАЗДЕЛА, то они могут быть выполнены нормально. (Но мы этого не разрешаем)
Использование SECTION имеет более высокие накладные расходы, чем при использовании и PERFORM инг только параграфов - U N L E S S - вы используете GOTO логику, чтобы обойти код, который должен быть условно выполнен. Наше правило гласит, что GOTO может указывать только на Tag-Line в том же РАЗДЕЛЕ. (параграф) Все параграфы в РАЗДЕЛЕ должны быть подфункцией функции РАЗДЕЛА. Инструкция EXIT - это ассемблерная инструкция NOP. Она позволяет поместить Tag-Line перед следующим РАЗДЕЛОМ - быстрый выход/возврат.
Выполнение PERFORM xxxx THRU yyyy имеет большую нагрузку на процессор, чем выполнение РАЗДЕЛА без GOTO s.
ВНИМАНИЕ: Выполнение PERFORM xxxx Tag-Line в РАЗДЕЛЕ приведет к падению всего кода в РАЗДЕЛЕ до следующего РАЗДЕЛА. Выполнение GOTO Tag-Line за пределами текущего РАЗДЕЛА приведет к тому, что весь код в новом посадочном РАЗДЕЛЕ будет пропущен до следующего РАЗДЕЛА. (Но мы не разрешаем этого)