Chciałbym dowiedzieć się, kto wprowadził wcięcia kodu, a także kiedy i gdzie został wprowadzony.
Wydaje się to bardzo ważne dla zrozumienia kodu, ale nie było uniwersalne. Większość kodów Fortran i Basic była (jest?) Niewzruszona, to samo dotyczy Cobola.
Jestem prawie pewien, że widziałem nawet stary kod Lisp napisany jako ciągły tekst z wierszami. Trzeba było policzyć nawiasy w głowie tylko po to, aby je przeanalizować, nie wspominając o zrozumieniu.
Skąd więc tak duża poprawa? Nigdy nie widziałem żadnej wzmianki o jego pochodzeniu.
Oprócz oryginalnych przykładów jego użycia szukam również oryginalnych dyskusji na temat wcięć.
coding-style
history
indentation
Daniel Mahler
źródło
źródło
C
postaci, jeśli komentujesz.if
, a la F #), wcięcie nie jest tak naprawdę funkcją językową, jest to funkcja IDE ( i trochę w kompilatorze, aby zignorować wiodące spacje). @ Jack ma rację - pierwotnie programy były dziurkowane na kartach, a wcięcia dosłownie nie istniały w pamięci (i być może nie powinny teraz). Columnar RPG nie używa wcięć (i tak masz tylko ~ 20 znaków wolnych w linii), ale IDE może „zmiękczyć” wcięcie kodu za ciebie.Odpowiedzi:
Początki wciętego kodu prawdopodobnie można znaleźć w ALGOL :
źródło
{}
) do rozdzielania bloków i możesz zdefiniować zagnieżdżone funkcje, ale to nie mówi mi nic o tym, czy kod jest wcięty.Kod wcięty musiał pojawić się przed 1958 r., Ponieważ był obecny - ale nie wszechobecny - w LISP i ALGOL. Najwcześniej mogę zlokalizować COMTRAN, który został wprowadzony w 1957 roku, chociaż mogę znaleźć tylko instrukcję z 1960 roku (patrz strona 90ish). To wcięcie różni się od współczesnej koncepcji, ponieważ COMTRAN nie ma struktury blokowej większości języków od czasu ALGOL, ale myślę, że nadal powinien się liczyć.
Podejrzewam, że tak naprawdę nie jest to pierwszy przykład, ale nie mogę go wcześniej zlokalizować.
Zaktualizowano
Przyszło mi do głowy, że w znacznym stopniu wcięcie prawdopodobnie poprzedza programowanie. Wcięcia były prawdopodobnie używane na listach instrukcji, zanim ktokolwiek pisał programy komputerowe. Niestety nie mogę znaleźć dobrych przykładów tego.
źródło
Rozszerzenie komentarza Rossa Pattersona - kompilatory COBOL (lub przynajmniej kompilatory IBM, których użyłem w mojej karierze przed otwarciem systemów) wymusiły wcięcia (obszary, o których wspomina „A” i „B”). Jeśli którykolwiek z elementów, które musiały znajdować się w tych obszarach, nie został umieszczony dokładnie, kod nie powiedzie się Jednak poza tym nie było wymagane żadne specyficzne wcięcie - co często prowadziło do chwytania podczas modyfikowania kodu innego programisty, którego styl wcięcia był inny niż twój - etykieta sugerowałaby, abyś postępował zgodnie z istniejącym wzorem, ponieważ zachował pokój wśród rówieśników; dodatkowo różne style w tym samym źródle mogą być irytujące, co przypomina wygląd Tetris.
Minęły lata, odkąd myślałem o języku COBOL i jego wcięciach - dziękuję, że zadałeś pytanie i zapewniłeś małą podróż do przeszłości!
Marty
źródło