View all comments ➔
        • 3 months

          They also used the classic they knew what they were doing shortcut.

    • 3 months

      Hello World in 1974: echo.c

      main(argc, argv)
      int argc;
      char *argv[];
      {
      	int i;
      
      	argc--;
      	for(i=1; i<=argc; i++)
      		printf("%s%c", argv[i], i==argc? '\n': ' ');
      }
      
        • 3 months

          I think it’s actually quite elegant. No matter what it has to skip over argument 0 which will be the executable name echo.
          If the subtraction was removed and the loop changed to <, it would then need to do an addition or subtraction inside the loop to check if it’s the last argument.

          • The real question might be whether the compiler was smart enough to change var++ and var-- into ++var and --var when the initial values aren’t needed.

            As compiler optimisations go, it’s a fairly obvious one, but it was 1974 and putting checks like that in the compiler would increase its size and slow it down when both space and time were at a premium.