~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 020E691F91287ECA923D0E203188135F__1697411460 ✰
Заголовок документа оригинал.:
✰ Line number - Wikipedia ✰
Заголовок документа перевод.:
✰ Номер строки — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Line_number ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/02/5f/020e691f91287eca923d0e203188135f.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/02/5f/020e691f91287eca923d0e203188135f__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 13:26:04 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 16 October 2023, at 02:11 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Номер строки — Википедия Jump to content

Номер строки

Из Википедии, бесплатной энциклопедии

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

В C языке программирования номер строки исходного кода на единицу больше, чем количество символов новой строки, прочитанных или введенных до этого момента. [1]

Программисты также могли присваивать номера строк операторам старых языков программирования , таких как Fortran , JOSS и BASIC . В Фортране не каждому оператору требовался номер строки, и номера строк не обязательно должны быть последовательными. Номера строк предназначены для ветвления и ссылки с помощью операторов форматирования.

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

Во многом из-за распространенности интерактивного редактирования текста в современных операционных системах номера строк не являются особенностью большинства языков программирования, даже современных Fortran и Basic. [2]

История [ править ]

ФОРТРАН [ править ]

В Фортране , впервые указанном в 1956 году, номера строк использовались для определения шаблонов ввода/вывода, для указания повторяющихся операторов и для условного ветвления. Например: [3]

   РАЗМЕР  АЛЬФА  (  25  ),   РО  (  25  ) 
 1  )   ФОРМАТ  (  5  F12  .  4  ) 
 2  )   ЧТЕНИЕ  1  ,   АЛЬФА  ,   RHO  ,   ARG 
    SUM   =   0,0 
    DO  3   I  =  1  ,   25 
    ЕСЛИ   (  ARG  -  АЛЬФА  (  I  ))   4  ,  3  ,  3 
 3  )   СУММА   =   СУММА   +   АЛЬФА  (  I  ) 
 4  )   ЗНАЧЕНИЕ   =   3,14159  *  RHO  (  I  -  1  ) 
    ПЕЧАТЬ  1  ,   ARG  ,   СУММА  ,   ЗНАЧЕНИЕ 
 ПЕРЕЙТИ   К   2 

Как и ассемблер до него, Фортран не предполагал, что каждая строка должна иметь метку (в данном случае номер строки). Только операторы, на которые есть ссылки в других местах, требовали номера строки:

  • Строка 1 определяет шаблон формата для ввода; тот READ команда в строке 2 и позже PRINT обе команды ссылаются на эту строку.
  • The DO цикл выполняет строку 3.
  • Арифметический оператор IF переходит к строке 4 при отрицательном значении, к строке 3 при нуле и снова к строке 3 при положительном значении.

Хотя в этом примере номера строк являются последовательными, в самой первой опубликованной «полной, но простой программе [Фортран]» номера строк расположены в последовательности 1, 5, 30, 10, 20, 2. [4]

Номера строк также могут быть присвоены переменным с фиксированной точкой (например, ASSIGN я TO n ) для ссылки в последующих присвоенных операторах GO TO (например, GO TO n,(n1,n2,...nm) ).

КОБОЛ [ править ]

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

НАРКОТИК [ править ]

В 1962 году DOPE (Дартмутский эксперимент по упрощенному программированию) стал одним из первых языков программирования, в котором для каждого оператора требовался номер строки и использовался последовательный порядок номеров строк. Номера строк были указаны в качестве пунктов назначения для двух команд: C (операция сравнения, арифметический IF) и T (операция To, GO TO).

ДЖОСС [ править ]

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

В отличие от FORTRAN до него или BASIC после него, JOSS требовал, чтобы номера строк были числами с фиксированной точкой, состоящими из пары двузначных целых чисел, разделенных точкой (например, 1,1). Часть номера строки слева от точки называется «страницей» или «частью», а часть справа — «строкой»; например, номер строки 10.12относится к странице 10, строке 12. Ветви могут ориентироваться либо на страницу, либо на строку внутри страницы. Когда используется более поздний формат, объединенная страница и строка называются «шагом».

Страницы используются для определения подпрограмм , которые возвращаются, когда следующая строка находится на другой странице. Например, если подпрограмма для вычисления квадратного корня числа находится на странице 3, она может иметь три строки кода 3.1, 3.2 и 3.3, и ее можно будет вызвать с помощью Do part 3.Код вернется к инструкции после Do, когда достигнет следующей строки на другой странице, например, 4.1. Нет необходимости в эквиваленте RETURN в конце, хотя если требуется досрочный возврат, Doneэто выполняет. Пример:

*Процедура запроса у пользователя положительного значения и повторения до тех пор, пока он не получит его.
 01.10 Требуйте X как «Введите положительное значение больше нуля».
 01.20 Готово, если X>0.
 01.30 К шагу 1.1
 

БАЗОВЫЙ [ править ]

Представленный в 1964 году, Dartmouth BASIC принял обязательные номера строк, как в JOSS, но сделал их целыми числами, как в FORTRAN. Как было определено изначально, BASIC использовал только номера строк для GOTO и GOSUB(перейти к подпрограмме, затем вернуться). Некоторые реализации Tiny BASIC поддерживали числовые выражения вместо констант, а операторы переключения присутствовали на разных диалектах ( ON GOTO; ON GOSUB; ON ERROR GOTO).

Номера строк редко использовались где-либо еще. Единственным исключением было разрешение использовать указатель, используемый READ (который повторялся через DATA операторы) для установки определенного номера строки с помощью RESTORE.

  1   REM  RESTORE МОЖЕТ ИСПОЛЬЗОВАТЬСЯ, ЕСЛИ В БАЗОВОМ МАССИВЕ НЕТ СТРОКОВЫХ МАССИВОВ 
   2   DIM   M$  (  9  )  :   REM  DEFINE LENGTH OF 9 СИМВОЛОВ 
   5   ВВЕДИТЕ   "MONTH #?"   ;    M  :   IF   M  <  1   OR   M  >  12   THEN   5 
   7   RESTORE   10  *  M  :   ЧТЕНИЕ   M$  :   ПЕЧАТЬ   M$ 
  10   ДАННЫЕ   "ЯНВАРЬ" 
  20   ДАННЫЕ   "ФЕВРАЛЬ" 
  30   ДАННЫЕ   "МАРТ" 
  ... 

В первых выпусках Dartmouth BASIC THEN за ним может следовать только номер строки (для подразумеваемого GOTO ), а не, как в более поздних реализациях, оператор.

Диапазон допустимых номеров строк широко варьировался от реализации к реализации, в зависимости от представления, используемого для хранения двоичного эквивалента номера строки (один или два байта; со знаком или без знака). В то время как Dartmouth BASIC поддерживал числа от 1 до 99999, типичная реализация микрокомпьютера поддерживала числа от 1 до 32767 (16-битное слово со знаком).

Допустимые номера строк в ранних реализациях BASIC
Диапазон Диалект
от 1 до 254 МИНОЛ
от 1 до 255 Примечание к дизайну Tiny BASIC
от 2 до 255 Денвер Тайни БЕЙСИК
от 0 до 999 УИУК БАЗОВЫЙ
от 1 до 2045 ДЕК БЕЙСИК-8
от 0 до 32767 LLL БЕЙСИК, НИБЛ
от 1 до 32767 Apple I BASIC , Уровень I BASIC , Palo Alto Tiny BASIC
от 0 до 65529 GW-БЕЙСИК , IBM БЕЙСИК
от 1 до 65535 Altair 4K BASIC , MICRO BASIC 1.3, 6800 Tiny BASIC, Tiny BASIC Extended
от 1 до 99999 Дартмут БЕЙСИК
от 1 до 999999 СКЕЛЬБАЛ
от 0 до 1*10^40-1 БАЗОВЫЙ 1)

1) Хотя QBASIC использует структурное программирование и, следовательно, не требует номеров строк, в QBASIC все же можно запускать код с номерами строк.

Номера строк и стиль [ править ]

В этих языках было вопросом стиля программирования , если не прямой необходимостью оставлять промежутки между последовательными номерами строк, т. е. программист использовал бы последовательность (10, 20, 30, ...), а не (1, 2, 3, ...). Это позволило программисту вставить строку кода позже. Например, если строка кода между строками 20 и 30 была пропущена, программист мог бы вставить забытую строку в строку номер 25. Если бы в нумерации не было пробелов, программисту пришлось бы перенумеровать строку 3 и все последующие строки. строк, чтобы вставить новую строку после строки 2. Конечно, если программисту необходимо вставить более девяти дополнительных строк, потребуется перенумерация даже при более редкой нумерации. Однако такое изменение нумерации будет ограничиваться изменением нумерации только одной строки на каждые десять добавленных строк; когда программист обнаруживает, что ему нужно добавить строку между 29 и 30, нужно будет перенумеровать только строку 30, а строку 40 можно оставить без изменений.

Некоторые Бейсики имели Команда RENUM , которая обычно проходит через программу (или определенную ее часть), переназначая номера строк с равными приращениями. Он также перенумерует все ссылки на эти номера строк, чтобы они продолжали работать правильно.

В большой программе, содержащей подпрограммы , каждая подпрограмма обычно начинается с номера строки, достаточно большого, чтобы оставить место для расширения основной программы (и предыдущих подпрограмм). Например, подпрограммы могут начинаться со строк 10000, 20000, 30000 и т. д.

Номера строк и GOTO [ править ]

В «неструктурированных» языках программирования, таких как BASIC , номера строк использовались для указания целей операторов ветвления . Например:

1   S  =  0  :   N  =  -1 
 2   ВВОД   «ВВЕДИТЕ ЧИСЛО ДЛЯ ДОБАВЛЕНИЯ ИЛИ 0 ДЛЯ ЗАВЕРШЕНИЯ»  ;    I 
 3   S  =  S  +  I:   N  =  N  +  1  :   IF   I  <>  0   THEN   GOTO   2 
 4   PRINT   "SUM="  ;    S:   ПЕЧАТЬ   «СРЗНАЧ =»  ;    С  /  Н 

Ветвление в стиле GOTO может привести к созданию спагетти-кода . (См. «Считается вредным» , «Структурное программирование» .) Даже в некоторых более поздних версиях BASIC, которые все еще требовали нумерации строк, использование GOTO, управляемого номером строки, было постепенно прекращено, когда это возможно, в пользу более чистых конструкций, таких как цикл for и цикл while .

Многие современные языки (включая C и C++ ) включают версию оператора GOTO; однако в этих языках цель GOTO указывается меткой строки , а не номером строки.

Номера строк и синтаксические ошибки [ править ]

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

Использование номеров строк для описания местоположения ошибок остается стандартом в современных инструментах программирования, хотя номера строк никогда не требуется указывать вручную. Программа легко подсчитывает количество новых строк в исходном файле и отображает автоматически сгенерированный номер строки в качестве места ошибки. В таких IDE , как Microsoft Visual Studio , Eclipse или Xcode , в которых компилятор обычно интегрирован с текстовым редактором, программист может даже дважды щелкнуть ошибку и перейти непосредственно к строке, содержащей эту ошибку.

См. также [ править ]

Ссылки [ править ]

  1. ^ «6.10.4 Управление линией» . 30 января 2008 г. Архивировано из оригинала 8 июля 2011 г. Проверено 3 июля 2008 г.
  2. ^ «Различия между GW-BASIC и QBasic» . 12 мая 2003 г. Проверено 28 июня 2008 г.
  3. ^ Отдел исследований программирования, International Business Machines Corporation (8 апреля 1957 г.). Система автоматического кодирования FORTRAN для IBM 704 EDPM: предварительное руководство оператора (PDF) . стр. 6–37. {{cite book}}: |last1= имеет общее имя ( справка )
  4. ^ Бэкус, Джон Уорнер ; Бибер, Р.Дж.; Бест, Шелдон Ф.; Гольдберг, Ричард ; Херрик, Харлан Л.; Хьюз, РА; Митчелл, LB; Нельсон, Роберт А.; Натт, Рой ; Сэйр, Дэвид ; Шеридан, Питер Б.; Стерн, Гарольд; Зиллер, Ирвинг (15 октября 1956 г.). Сэйр, Дэвид (ред.). Система автоматического кодирования FORTRAN для IBM 704 EDPM: Справочное руководство программиста (PDF) . Нью-Йорк, США: Отдел прикладных наук и отдел исследований в области программирования, International Business Machines Corporation . п. 46. ​​Архивировано (PDF) из оригинала 4 июля 2022 г. Проверено 4 июля 2022 г. (2+51+1 стр.)
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 020E691F91287ECA923D0E203188135F__1697411460
URL1:https://en.wikipedia.org/wiki/Line_number
Заголовок, (Title) документа по адресу, URL1:
Line number - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)