Pascal family languages parse quickly because they won't let you use anything before it's defined.
This paper is very readable and talks about Niklaus Wirth's ruthless approach to compiler optimization. https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90...
I don't want to scroll up and down a file constantly when referring to previous things that might reference something at the bottom of the file, which then references something near the top, which then references something in the middle, which then references something at the bottom again... I despise working in that manner.
type
ItemPtr = ^Item;
SomeOtherType = record
a,b,c:integer;
end;
Item = record
Data:string;
Next:ItemPtr;
end;
The first time the parser hits "Item", its not defined.