Это, на мой взгляд, заблуждение.
Если я правильно понял, Вы говорите не только про ООП, но и про обычные записи Паскаля. В теории я с Вами согласен. На практике в процессе работы наведение красот может быть преждевременным. Так, с примером, который я привел выше, дело может обстоять следующим образом:
- имеются отдельные программки для вычисления индексов Хосойя и Винера с процедурами и функциями:
procedure readGraph (adjList : string; var adjMat : TAdjMatrix; var n : integer);
// по списку смежности adjList строит nxn матрицу смежности adjMat
function hos (graph : TAdjMatrix; vNum : integer) : integer;
// возвращает индекс Хосойя
function win (A : TAdjMatrix; vn : integer) : integer;
// возвращает индекс Винера
- нужно их объединить, чтобы проверить некую теорию. Конечно же, если теория окажется верной, в релизе должно быть:
type
TGraph = record
adjMatrix : TAdjMatrix;
vertexNum,
hosIndex,
winIndex : integer;
end;
procedure readGraph (adjList : string; var graph : TGraph);
function hos (graph : TGraph) : integer;
function win (graph : TGraph) : integer;
Поменять имена - рутина, но если идея окажется неверной, это будут лишние трудозатраты. А рабочее время надо беречь!
В текущие времена парсеру вполне позволительно состоять из отдельно таблиц разбора и прочих данных и отдельно engine, который их использует и не пишется разработчиком компилятора. Так менять грамматику языка проще.
Приведите, пожалуйста, пример неигрушечного компилятора, сделанного невручную.
Очевидно, семантика разная. Цикл — это исполняемый оператор, а процедура — это объявление.
Не вижу разницы в контексте данного обсуждения.
Во-первых, кто вас заставляет использовать в формулах и коде одинаковые имена?
Редакторы журналов, которые неохотно тратят лишнее место на таблицы соответствий обозначений статьи и имен программы. А как читатель сам вижу, что они правы, когда в статье и в программе разные имена, читать труднее. А уж использовать в формулах длинные обозначения, вроде numVertices, это запредельно. Если даже в формуле всего десять имен. Много ли подобных примеров можно найти?