80 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое листинг программы

Листинг (программирование)

Исхо́дный код (также исхо́дный текст) — текст компьютерной программы на каком-либо языке программирования. В обобщённом смысле — любые входные данные для транслятора.

Исходный код либо транслируется в исполняемый код при помощи компилятора, либо исполняется непосредственно по тексту при помощи интерпретатора.

Содержание

Назначение

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

Другое важное назначение исходного кода — в качестве описания программы. По тексту программы можно восстановить логику её поведения. Для облегчения понимания исходного кода используются комментарии. Существуют также инструментальные средства, позволяющие автоматически получать документацию по исходному коду — т. н. генераторы документации.

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

Программисты часто переносят исходный код из одного проекта в другой, что носит название повторного использования кода (Software reusability).

Исходный код — важнейший компонент для процесса портирования программного обеспечения на другие платформы. Без исходного кода какой-либо части ПО, портирование либо слишком сложно, либо вообще невозможно.

Организация

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

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

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

Качество

В отличие от человека, для компьютера нет «хорошо написанного» или «плохо написанного» кода. Но то, как написан код, может сильно влиять на процесс сопровождения ПО. О качестве исходного кода можно судить по следующим параметрам:

  • читаемость кода (в том числе наличие или отсутствие комментариев к коду;
  • лёгкость в поддержке, тестировании, отладке и устранении ошибок, модификации и портировании;
  • низкая сложность;
  • низкое использование ресурсов — памяти, процессора, дискового пространства;
  • отсутствие замечаний, выводимых компилятором;
  • отсутствие «мусора» — неиспользуемых переменных, недостижимых блоков кода, ненужных устаревших комментариев и т. д.
Читать еще:  Что такое rom память

Неисполняемый исходный код

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

В таких случаях исходным кодом считается форма данной работы, предпочтительная для её редактирования. В лицензиях, предназначенных не только для ПО, она также может называться версией в «прозрачном формате». Это может быть, например:

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

Большая Энциклопедия Нефти и Газа

Листинг — программа

Листинги программ каждого модуля являются логической частью его описания. Однако листинги могут быть слишком объемистыми для объединения их в первозданном виде с каким-либо другим документом. Возможно включение в этот раздел листингов на микрофишах или помещение ссылок на них. Если здесь будут приведены не листинги, а ссылки, необходимо особенно тщательно следить за их точностью, сохраняя ее на протяжении всей фазы использования. [1]

Листинг программы должен иметь удобочитаемый вид. Несколько страниц листинга можно сэкономить за счет уплотнения команд, но при этом теряется существенно больше в смысле удобочитаемости и общего понимания программы. Языки высокого уровня допускают большую свободу в использовании пробелов ддя расширения предложений. Ничего не теряется при неплотном написании факти-ческого кода, поскольку компилятор игнорирует незначащие про белы. Поэтому, убедительно рекомендуется записывать предложения в ясном и логичном формате. [3]

Изучив листинги программы ПЗР , вычислите среднее число вопросов, задаваемых в обеих версиях для определения животного. [4]

Кроме листинга программы , выдаваемого на печать на первом шаге, получается ряд выходных наборов данных, которые затем передаются на второй шаг как входные. [5]

Печать листинга программы будет осуществлена с этой отметки. Директива LIST не будет напечатана, но последующие строки будут выводиться в исходной распечатке. [6]

Из основного листинга программы FileBox видно, что и первая кнопка-селектор, и кнопка Close использует стиль WS GROUP. Данный стиль информирует Windows о том, что этот и следующие за ним элементы управления должны рассматриваться как группа. [7]

По листингу программы легко удостовериться, что это правильная ссылка на MEM при относительной адресации. Расчет смещения выполняется в предположении, что счетчик команд указывает на следующую ячейку. [8]

В листинге программы 3.5 F приведены только оригинальные подпрограммы для интерполяционного метода. [9]

В листинге программы 7.3 F не приведены подпрограммы метода секущих SECANT и интегратора Рунге-Кутты RK21, взятые без изменения из программ 1.6 F и 6.2 F. Названные подпрограммы записаны в отдельном файле, который подсоединяется к программе 7.3 F на этапе компиляции и редактирования. Предлагаемый способ передачи параметров не нарушает общности подпрограммы SECANT и RK21 и позволяет использовать их без изменения. Синтаксис языка Фортран запрещает включать формальные параметры подпрограмм и функций в COMMON-блоки. [10]

Читать еще:  Как разделить поиск и РСЯ

Ниже приведены листинги программ , реализующих указанные процедуры. [11]

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

В [4-7] приведен листинг программы на Фортране, реализующей стандартный алгоритм БПФ. В [8] представлена эффективная программа, написанная на Фортране, для действительных последовательностей. [13]

В противном случае листинг программы будет иметь несколько необычный вид: все используемые буквы кириллицы в комментариях и сообщениях будут преобразованы в соответствующие буквы латинского алфавита. [14]

Используя отладчик и необходимые листинги программы , можно очень быстро отладить программу, даже если она не располагает встроенными средствами отладки. [15]

Типы программирования. Первые листинги.

Типы программирования и основы объектно-ориентированного программирования

Когда-то знакомство с основами программирования начиналось не с изучения таких сложных языков, как С и Assembler, а с изучения языка Basic. Эта аббревиатура расшифровывается как «универсальный символьный код для начинающих». Basic является интерпретирующим языком.

Раньше интерпретирующие языки программирования были предназначены только для начинающих, так как программы, написанные на этих языках, могли выполняться лишь в редакторах программ. Теперь же Visual Basic (наследник Basic) имеет в своем составе компилятор, а для интерпретирующих языков программирования предусматривается среда выполнения, которая встраивается в различные операционные системы.

Рассмотрим теперь различия в схемах построения программ в так называемом процедурном программировании, с одной стороны, и объектно-ориентированном, с другой. Одним из предшественников Java был С (подробнее о родословном древе языков мы скажем позднее), который «исповедовал» процедурный тип программирования. В процедурном программировании основной единицей программы выступает процедура (или функция) — обособленный именной блок кода, который можно откуда-либо вызывать.

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

Этих недостатков в определенной мере лишена программа, построенная по принципам объектно-ориентированного программирования (ООП). Такие программы стали писать на языке С++, выступившим наследником языка С. В ООП структурной единицей программы считается не процедура, а так называемый класс. У класса есть свойства (характеристики класса) и методы (действия над конкретным объектом — «экземпляром» — данного класса). Ссылки на объект сокращают текст программы за счет обращения к соответствующим характеристикам и методам класса, к которому принадлежит данный конкретный объект. Приведем пример, который пояснит сказанное.

Предположим, у нас есть программа, которая работает со списком пользователей данного персонального компьютера. Каждый новый пользователь становится конкретным «объектом» класса «пользователи». При создании нового объекта ему приписываются «свойства», которые должны быть у каждого экземпляра, или объекта, класса (это могут быть фамилия, имя, отчество, дата рождения и т.п.). С объектом можно что-то сделать (вставить в список, удалить из списка, изменить адрес или фамилию пользователя и т.п.) — это и есть «методы» (блоки кода, которые принадлежат классу, но вызываются данным конкретным объектом и позволяют выполнять как минимум одну операцию с данным объектом).

Читать еще:  Какие виды угля вы знаете

Введем еще несколько понятий, важных для последующего наложения: событие и обработчик события. Сразу поясним, что это такое, на том же примере. Когда мы пользуемся упомянутой программой, мы можем щелкнуть на соответствующих кнопках (каждая из которых обозначает какую-то важную для нас операцию, например: «добавить», «удалить», «изменить» и т.п.). Как только мы щелкнем на какой-то конкретной кнопке, возникает событие. Сразу же вступает в действие обработчик события, т.е. начинает работать код, являющийся реакцией на событие. Обработчик события, скажем щелчка на кнопке «Добавить», может по нашему желанию создать новый объект класса пользователи и применить какой-либо метод данного класса для этого конкретного объекта для изменения его свойств (например, свойству фамилия мы по желанию пользователя присваиваем значение Иванов). В классе есть четкое описание всех возможных методов, которые можно применить к любому экземпляру данного класса. Поэтому обращение к классу экономит время и силы программиста, работающего с конкретными объектами.

Язык С++ — предшественник Java — нельзя было назвать исключительно «объектно-ориентированным языком». В программе на языке С++ могли не использоваться классы — структурные единицы ООП, а главная процедура main не принадлежала ни к какому классу.
Напротив, Java — строго объектно-ориентированный язык, он четко выдерживает все требования парадигмы ООП.
Рассмотрим еще три важных понятия ООП: наследование, инкапсуляция, полиморфизм. Наследование — это способность классов быть производными от других классов, наследуя при этом какие-то их методы и свойства. Вернемся к нашему старому примеру.

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

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

А теперь познакомимся с историей создания языка Java.

История языка Java

Давным-давно программисты писали программу непосредственно в двоичном коде. С появлением первого языка программирования — Assembler — работа программистов сильно упростилась. Стали появляться все новые и новые языки программирования. В 1972 году Деннис Ритчи из AT&T Bell Laboratories разработал процедурный язык С, который сразу стал очень популярным, так как был предназначен для создания сложных программ. В 1979-1980 гг. Бьерном Страуструпом, работающим в той же компании, был создан язык С with Classes.

У этого языка обнаружились некоторые недостатки, поэтому в 1983 году тот же Страуструп разработал язык С++, ставший популярным в 90-е гг. XX века. В 1991 году в компании Sun Microsystems под руководством Джеймса Гослинга, Патрика Ноутона, Криса Варта, Эдда Френка и Майкла Шеридана началась разработка языка Oak (дуб). В конце 1992 года появился первый вариант этого языка. С весны 1995 года данный язык стал называться Java.

Ява — остров Индонезийского архипелага, а также сорт кофе, который, согласно легенде, пили создатели Java.

Основы языка Java

Теперь перейдем непосредственно к изучению основ языка программирования Java на конкретном примере. Напишем первую программу на этом языке (листинг 1.1). Для написания и запуска кода используйте среду разработки (IDE), например, Eclipse, IntelliJ IDEA или Android Studio. Как установить и настроить Android Studio, смотрите здесь.
Листинг 1.1. Первая программа на языке Java

Источники:

http://dic.academic.ru/dic.nsf/ruwiki/1007751
http://www.ngpedia.ru/id129409p1.html
http://www.fandroid.info/tipy-programmirovaniya-pervye-listingi/

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector