2011-12-17 4 views
25

W History of Lisp, McCarthy pisze:Co John McCarthy miał na myśli przez * programowanie pornograficzne *?

Nieoczekiwane pojawienie tłumacza tendencję do zamrożenia formę języka, a niektóre decyzje podejmowane raczej beztrosko na `` funkcji rekurencyjnych ... „” papier później okazało się niefortunne. Obejmowały one notację COND dla wyrażeń warunkowych, która prowadzi do niepotrzebnej głębokości nawiasów, oraz użycie liczby zero, aby wskazać pustą listę NIL i wartość prawdy false. Oprócz zachęcania do programowania pornograficznego, podanie specjalnej interpretacji adresu 0 spowodowało trudności we wszystkich kolejnych implementacjach.

O czym on mówi?

Odpowiedz

18

Fakt, że zbyt wiele szczegółów wdrożeniowe przecieka na wyższym poziomie, tj pokazując zbyt wiele

+0

Czy * programowanie pornograficzne * może być dowolnym kodem, który wykracza poza swój właściwy poziom semantyczny, np. Inline assembly? –

+16

To wydaje się mieć sens: Kod używający * intymnej wiedzy *. –

+2

Lol'd ... "odsłaniając swoje prywatne" – csauve

6

Być może to był jego sposób mówienia o null references: the billion dollar mistake (T. Hoare).

+1

To może być część tego, ale spodziewam się, że będzie bliższy przykład z 1958 roku (czas omówiony w tej części artykułu). –

6

myślę, że jest o mieszanie numerycznych i logicznych wartości, które mogą być nadal widoczne w popularnych konstrukcji, prawdopodobnie pochodzi z Fortran, podobnie jak while (1). Istnieje wiele "sprytnych" algorytmów C, które polegają na tym, że 0 jest fałszywe, a każda inna wartość nie jest.

To samo odnosi się w dużej mierze do wywołań API, takich jak POSIX lub jądro Linux, z których niektóre zwracają 0 w przypadku niepowodzenia, a niektóre -1 (jest pewna zasada, kiedy stosować, ale jest to po prostu folklor, tak często jest zepsuty). Biorąc pod uwagę fakt, że w czasach McCarthy'ego te rzeczy jeszcze nie zostały rozwinięte, można zobaczyć jego "profetyczną" moc nawet tutaj.

19

... zera do oznaczenia pustą listę ...

ponieważ 0==() była emoticon pornografii od 1958

teraz wiesz.

+1

Bardzo fajny, jeden z najzabawniejszych postów SE.Zobacz także [this] (http://math.stackexchange.com/a/74348/86776), [this] (http://math.stackexchange.com/a/54568/86776) i [this] (http: //math.stackexchange.com/questions/689619/how-to-find-the-equation-of-one-curve-in-xy-plan-which-satisfies-such-functions). :-) – mvw

9

Oryginalny dokument techniczny Fortran III, dokument techniczny rozpowszechniony zimą 1958 r., Opisuje pewne bardzo wyraźne dodatki do języka Fortran II, w tym ... montaż inline.

Plik PDF jest here

uwodzicielską opis z "dodatkami" w następujący sposób:

Extract from I.,Ziller, Additions to Fortran II, 1958

Niektóre tabu kod jest

Pornographic programming using the un-released Fortran III

Tajemniczo, Fortran-III był never released to the public (see section 5.), ale rozpowszechniane w ograniczonym zakresie b zanim cicho znikają.

+0

Doskonały. Nick czasu! –

+0

wow thanks! Moja pierwsza nagroda –

+0

Nie ma za co. Dziękuję za to! Miałem właśnie pozwolić wygrać nagrodę. –