{"id":12040,"date":"2024-08-18T23:51:13","date_gmt":"2024-08-18T14:51:13","guid":{"rendered":"http:\/\/macroscope.world.coocan.jp\/yukukawa\/?p=12040"},"modified":"2024-08-27T06:10:17","modified_gmt":"2024-08-26T21:10:17","slug":"brian-w-kernighan-p-j-plauger-1976-software-tools","status":"publish","type":"post","link":"https:\/\/macroscope.world.coocan.jp\/yukukawa\/?p=12040","title":{"rendered":"Brian W. Kernighan &#038; P. J. Plauger (1976) Software Tools"},"content":{"rendered":"<ul>\n<li>Brian W. <strong>Kernighan<\/strong> &#038; P. J. <strong>Plauger<\/strong>, 1976: <em>Software Tools<\/em>.Reading MA USA: Addison-Wesley Pulbishing Company. 338 pp.ISBN 0-201-03669-X.<\/li>\n<li>[\u65e5\u672c\u8a9e\u7248] Brian W. <strong>Kernighan<\/strong>, P.J. <strong>Plauger<\/strong> \u8457, <strong>\u6728\u6751<\/strong> \u6cc9 \u8a33, 1981: <em>\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u4f5c\u6cd5<\/em>\u3002\u5171\u7acb\u51fa\u7248\u3002[\u308f\u305f\u3057\u306f\u3053\u306e\u7248\u3082\u898b\u305f\u304c\u3088\u304f\u8aad\u3093\u3067\u3044\u306a\u3044\u3002]<\/li>\n<\/ul>\n<p>\u82f1\u8a9e\u7248\u306fA5\u5224\u3088\u308a\u3059\u3053\u3057\u5927\u304d\u3081\u306e\u30da\u30fc\u30d1\u30fc\u30d0\u30c3\u30af\u3002\u308f\u305f\u3057\u304c\u5b66\u751f\u3060\u3063\u305f1979\u5e74\u3054\u308d\u8cb7\u3063\u3066\u3001\u3088\u304f\u8aad\u3093\u3060\u3002\u5177\u4f53\u7684\u306b\u306a\u306b\u3092\u307e\u306a\u3093\u3060\u304b\u304a\u307c\u3048\u3066\u3044\u306a\u3044\u304c\u3001\u81ea\u5206\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30bf\u30a4\u30eb\u306b\u5f71\u97ff\u3092\u304a\u3088\u307c\u3057\u3066\u3044\u308b\u3068\u3044\u3046\u610f\u5473\u3067\u3001\u300c\u308f\u305f\u3057\u3092\u3064\u304f\u3063\u305f\u672c\u300d\u306e\u3072\u3068\u3064\u3067\u3042\u308b\u3002<\/p>\n<p>1978\u5e74\u3001\u5b66\u90e83\u5e74\u751f\u3060\u3063\u305f\u308f\u305f\u3057\u306f\u3001\u5730\u7403\u7269\u7406\u306b\u95a2\u3059\u308b\u8a08\u7b97\u3092\u3059\u308b\u305f\u3081\u306b\u3001\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3092\u3059\u308b\u5fc5\u8981\u304c\u3042\u3063\u305f\u3002\u3064\u304b\u3046\u3053\u3068\u3092\u60f3\u5b9a\u3055\u308c\u3066\u3044\u305f\u8a00\u8a9e\u306f Fortran \u3060\u3063\u305f\u304c\u3001\u308f\u305f\u3057\u306f Fortran \u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u8868\u73fe\u5f62\u5f0f\u304c\u308f\u304b\u308a\u306b\u304f\u3044\u3068\u611f\u3058\u3001\u3082\u3063\u3068\u308f\u304b\u308a\u3084\u3059\u3044\u8a00\u8a9e\u3092\u3082\u3068\u3081\u305f\u30021\u5e74\u4e0a\u306e\u5148\u8f29\u304c\u3001Ratfor \u3068\u3044\u3046\u8a00\u8a9e\u304c\u3042\u308b\u3053\u3068\u3092\u304a\u3057\u3048\u3066\u304f\u308c\u305f\u3002Ratfor \u524d\u51e6\u7406\u7cfb (preprocessor) \u3068\u3044\u3046\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u3042\u3063\u3066\u3001Ratfor \u8a00\u8a9e\u3067\u66f8\u304b\u308c\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u3092 Fortran \u8a00\u8a9e\u306b\u7ffb\u8a33\u3057\u3066\u304f\u308c\u308b\u3002\u305d\u306e\u7d50\u679c\u3092 Fortran \u30b3\u30f3\u30d1\u30a4\u30e9\u306b\u304b\u3051\u308c\u3070\u6a5f\u68b0\u8a9e\u306b\u306a\u308a\u3001\u5b9f\u884c\u3067\u304d\u308b\u3002\u3055\u3044\u308f\u3044\u3001\u5927\u5b66\u306e\u8a08\u7b97\u6a5f\u3067\u306f\u524d\u51e6\u7406\u7cfb\u304c\u3064\u304b\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u305f\u3002\u3010\u305f\u3060\u3057\u3001\u5165\u51fa\u529b\u6a5f\u5668\u306e\u3064\u3054\u3046\u3067\u6ce2\u304b\u3063\u3053\u300c{\u300d\u300c}\u300d \u304c\u3064\u304b\u3048\u305a\u3001\u300c$(\u300d\u300c$)\u300d\u3067\u4ee3\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u3063\u305f\u306e\u3060\u3051\u308c\u3069\u3002 \u3011\u305d\u308c\u3067\u3001Ratfor \u306f\u3044\u308f\u3070\u308f\u305f\u3057\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u95a2\u3059\u308b native \u8a00\u8a9e\u306b\u306a\u3063\u305f\u3002\u305d\u306e\u5f8c\u3001Fortran \u30b3\u30f3\u30d1\u30a4\u30e9\u304c77\u6a19\u6e96\u306e\u3082\u306e\u306b\u306a\u3063\u3066\u304b\u3089\u306f\u3001\u308f\u305f\u3057\u306f\u76f4\u63a5 Fortran \u3067\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u304f\u3088\u3046\u306b\u306a\u3063\u305f\u3051\u308c\u3069\u3001\u3042\u305f\u307e\u306e\u306a\u304b\u3067\u306f Ratfor \u3067\u304b\u3093\u304c\u3048\u3066\u3044\u308b\u3068\u3053\u308d\u304c\u3042\u308b\u3002<\/p>\n<p>Ratfor \u8a00\u8a9e\u306e\u4f5c\u8005\u306f\u3001\u300e<em>The Elements of Programming Style<\/em> (<em>\u30d7\u30ed\u30b0\u30e9\u30e0\u66f8\u6cd5<\/em>)\u300f <a href=\"http:\/\/macroscope.world.coocan.jp\/yukukawa\/?p=11902\">[\u8aad\u66f8\u30e1\u30e2]<\/a> \u306e\u8457\u8005\u3067\u3082\u3042\u308b Kernighan \u3068 Plauger \u3060\u3063\u305f\u3002<\/p>\n<p>Ratfor \u8a00\u8a9e\u306b\u3064\u3044\u3066\u66f8\u3044\u305f\u672c\u3092\u3082\u3068\u3081\u305f\u3089\u3001\u672c\u66f8\u3060\u3051\u304c\u3042\u3063\u305f\u3002\u305f\u3060\u3057\u3001\u672c\u66f8\u306f\u3001Ratfor \u306e\u5165\u9580\u66f8\u3067\u3082\u3001\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u5165\u9580\u66f8\u3067\u3082\u306a\u3044\u3002Ratfor \u8a00\u8a9e\u304c\u3042\u308b\u3053\u3068\u3092\u524d\u63d0\u3068\u3057\u3066\u3001Ratfor \u524d\u51e6\u7406\u7cfb (9\u7ae0) \u3084\u3001Unix \u306e ed \u306b\u4f3c\u305f\u30e9\u30a4\u30f3\u30a8\u30c7\u30a3\u30bf (6\u7ae0) \u3084\u3001roff \u306b\u4f3c\u305f\u6587\u66f8\u5272\u308a\u3064\u3051\u30d7\u30ed\u30b0\u30e9\u30e0 (7\u7ae0) \u3092\u3001\u81ea\u5206\u3067\u3064\u304f\u308c\u308b\u3053\u3068\u3092\u5230\u9054\u70b9\u3068\u3057\u305f\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u5de5\u5b66\u306e\u5b9f\u7fd2\u6559\u6750\u3060\u3002\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u521d\u5fc3\u8005\u306e\u308f\u305f\u3057\u306b\u306f\u3001\u305d\u306e\u5b9f\u7fd2\u306b\u3064\u3044\u3066\u3044\u304f\u3053\u3068\u306f\u3067\u304d\u305a\u3001\u3060\u3044\u305f\u3044\u3001\u305f\u3060\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u8aad\u3093\u3060\u3060\u3051\u3060\u3063\u305f\u3002\u305d\u308c\u3067\u3082\u3001\u304b\u306a\u308a\u5f71\u97ff\u3092\u3046\u3051\u305f\u3068\u304a\u3082\u3046\u3002<\/p>\n<p>Ratfor \u8a00\u8a9e\u306f\u3001\u5236\u5fa1\u69cb\u9020\u3092\u69cb\u6210\u3059\u308b\u6587\u3068\u3057\u3066\u3001\u6761\u4ef6\u5225\u51e6\u7406\u3092\u3059\u308b if \/ else \u3084\u3001\u30eb\u30fc\u30d7\u3092\u3064\u304f\u308b repeat \u307e\u305f\u306f while \u306a\u3069\u3092\u3001Fortran \u306b\u8ffd\u52a0\u3057\u305f\u3082\u306e\u3060\u3002\u3053\u306e\u8ffd\u52a0\u3057\u305f\u5236\u5fa1\u69cb\u9020\u306e\u6587\u306f (\u304a\u306a\u3058 Bell \u7814\u7a76\u6240\u3067\u8003\u6848\u3055\u308c\u305f)\u3001C \u3084 Awk \u306e\u5236\u5fa1\u69cb\u9020\u3068\u3060\u3044\u305f\u3044\u304a\u306a\u3058\u5f62\u3092\u3057\u3066\u3044\u308b\u3002\u307e\u305f\u3001\u8907\u6570\u306e\u6587\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3059\u308b\u306e\u306b (Pascal\u306a\u3089\u3070\u300cbegin\u300d\u300cend\u300d\u3092\u3064\u304b\u3046\u3068\u3053\u308d\u3067) \u6ce2\u304b\u3063\u3053\u300c{\u300d\u300c}\u300d\u3092\u3064\u304b\u3063\u3066\u3044\u308b\u3002\u3057\u304b\u3057\u305d\u308c\u4ee5\u5916\u306e\u6587\u306f\u3001Fortran \u306e\u307e\u307e\u3060\u3002\u305f\u3060\u3057\u3001Fortran\u8a00\u8a9e\u306f\u57fa\u672c\u7684\u306b\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u306e\u533a\u5225\u304c\u306a\u304f\u30011970\u5e74\u4ee3\u5f53\u6642\u306f\u3059\u3079\u3066\u5927\u6587\u5b57\u3067\u66f8\u304f\u306e\u304c\u3075\u3064\u3046\u3060\u3063\u305f\u306e\u3060\u304c\u3001\u672c\u66f8\u306e Ratfor \u306e\u4f8b\u6587\u306f\u3001\u5b9a\u6570\u5024\u3092\u3057\u3081\u3059\u6587\u5b57\u5217\u3092\u5927\u6587\u5b57\u306b\u3059\u308b\u7d04\u675f\u304c\u3042\u308b\u304c\u3001\u5909\u6570\u540d\u306f\u5c0f\u6587\u5b57\u3092\u3064\u304b\u3063\u3066\u3044\u308b\u3002\u305d\u306e\u304a\u304b\u3052\u3067\u3001\u4f8b\u6587\u306f\u4e00\u898b C\u8a00\u8a9e\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u3042\u308b\u304b\u306e\u3088\u3046\u306b\u898b\u3048\u308b\u304c\u3001\u5b9f\u306f\u305d\u3046\u3067\u306f\u306a\u3044\u3002<\/p>\n<p>\u308f\u305f\u3057\u304c\u3001Raftor \u524d\u51e6\u7406\u7cfb\u304c\u3042\u3063\u305f\u306e\u306b\u3082\u304b\u304b\u308f\u3089\u305a\u3001\u5b9f\u7fd2\u8ab2\u984c\u3092\u3084\u308c\u306a\u304b\u3063\u305f\u306e\u306f\u3001\u5165\u51fa\u529b\u306e\u3057\u304b\u305f\u306e\u3061\u304c\u3044\u306e\u305b\u3044\u3060\u3002Fortran \u306e\u5165\u51fa\u529b\u306f\u3001\u30d1\u30f3\u30c1\u30ab\u30fc\u30c9\u3068\u30e9\u30a4\u30f3\u30d7\u30ea\u30f3\u30bf\u304c\u3075\u3064\u3046\u3060\u3063\u305f\u6642\u4ee3\u306e\u30b9\u30bf\u30a4\u30eb\u3092\u53cd\u6620\u3057\u3066\u30011\u884c\u305a\u3064\u8aad\u307f\u66f8\u304d\u3059\u308b\u3053\u3068\u3092\u60f3\u5b9a\u3057\u3066\u3044\u308b\u3002\u672c\u66f8\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u4f8b\u306f\u30011\u6587\u5b57\u305a\u3064\u8aad\u307f\u66f8\u304d\u3059\u308b\u5165\u51fa\u529b\u6a5f\u80fd\u304c\u3042\u308b\u3053\u3068\u3092\u524d\u63d0\u3068\u3057\u3066\u3044\u308b\u3002\u307e\u305f\u3001\u8aad\u307e\u308c\u308b\u6587\u5b57\u306e\u3046\u3061\u306b\u3001\u30d5\u30a1\u30a4\u30eb\u306e\u304a\u308f\u308a\u3092\u3057\u3081\u3059 EOF \u3068\u3001\u6539\u884c\u3092\u3057\u3081\u3059 NEWLINE \u304c\u3042\u308a\u3046\u308b\u3068\u3059\u308b\u3002\u300c\u30d5\u30a1\u30a4\u30eb\u306b\u30c7\u30fc\u30bf\u304c\u3042\u308b\u304b\u304e\u308a\u8aad\u3080\u300d\u3068\u3044\u3046\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u304f\u3068\u304d\u306f\u3001\u30c7\u30fc\u30bf\u3092\u8aad\u3080\u95a2\u6570\u3092 while \u306e\u6761\u4ef6\u306e\u306a\u304b\u306b\u3044\u308c\u3066\u3001\u8aad\u307e\u308c\u305f\u5024\u304c EOF \u306b\u306a\u3063\u305f\u3089\u30eb\u30fc\u30d7\u304b\u3089\u8131\u51fa\u3059\u308b\u3068\u3044\u3046\u30b9\u30bf\u30a4\u30eb\u3092\u63a1\u7528\u3057\u3066\u3044\u308b\u3002while \u6587\u306f Raftor \u524d\u51e6\u7406\u7cfb\u3092\u3068\u304a\u3059\u3068 Fortran \u306e if \u6587\u3068 go to \u6587\u306b\u306a\u308b\u304c\u3001if \u306e\u6761\u4ef6\u306e\u306a\u304b\u306b read \u6587\u3092\u66f8\u304f\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u304b\u3089\u3001read \u6587\u3092\u3075\u304f\u3080\u95a2\u6570\u3092\u66f8\u3044\u3066\u3001\u305d\u308c\u304c\u30011\u6587\u5b57 \u307e\u305f\u306f EOF \u3092\u304b\u3048\u3059\u3088\u3046\u306b\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3002Fortran \u3067\u305d\u308c\u3092\u5b9f\u73fe\u3059\u308b\u65b9\u6cd5\u306e\u4f8b\u306f 1.9 \u7bc0\u306b\u66f8\u304b\u308c\u3066\u3044\u308b\u304c\u3001\u305d\u308c\u306f Fortran \u51e6\u7406\u7cfb\u4f9d\u5b58\u306e\u3068\u3053\u308d\u304c\u3042\u3063\u305f\u3057 (\u30b5\u30d6\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u30ed\u30fc\u30ab\u30eb\u306b\u3082\u3063\u3066\u3044\u308b\u5909\u6570\u306e\u5024\u3092\u3001\u305d\u306e\u30b5\u30d6\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u3075\u305f\u305f\u3073\u3088\u3073\u3060\u3055\u308c\u305f\u3068\u304d\u306b\u3064\u304b\u3048\u308b\u3088\u3046\u306b\u3057\u305f\u3044\u306e\u3060\u304c\u3001\u305d\u306e\u5b9f\u73fe\u306e\u3057\u304b\u305f\u306e\u6a19\u6e96\u304c\u306a\u304f\u3001Fortran\u30b3\u30f3\u30d1\u30a4\u30e9\u3084OS\u3054\u3068\u306e\u4e8b\u60c5\u3092\u3055\u3050\u308b\u5fc5\u8981\u304c\u3042\u3063\u305f\u306e\u3060)\u3001\u305d\u308c\u3060\u3051\u3067\u306f\u5f53\u6642\u308f\u305f\u3057\u304c\u3084\u308a\u305f\u304b\u3063\u305f\u5165\u51fa\u529b\u3092\u30ab\u30d0\u30fc\u3067\u304d\u306a\u3044\u3068\u304a\u3082\u3063\u305f\u306e\u3067\u3001\u3042\u304d\u3089\u3081\u3066\u3057\u307e\u3063\u305f\u306e\u3060\u3063\u305f\u3002\u3010\u8aad\u3080\u3079\u304d\u30d5\u30a1\u30a4\u30eb\u304c\u3072\u3068\u3064\u3060\u3051\u306a\u3089\u3070\u95a2\u6570\u5185\u306b1\u884c\u3076\u3093\u306e\u30d0\u30c3\u30d5\u30a1\u3092\u3068\u3063\u3066\u304a\u3051\u3070\u3088\u3044\u306e\u3060\u3051\u308c\u3069\u3001\u8907\u6570\u306e\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u4e26\u884c\u3057\u3066\u8aad\u307f\u305f\u3044\u3068\u304d\u306b\u30d0\u30c3\u30d5\u30a1\u7528\u306e\u914d\u5217\u3092\u3069\u3053\u306b\u3082\u3063\u305f\u3089\u3088\u3044\u304b\u308f\u304b\u3089\u306a\u304b\u3063\u305f\u3002\u3011<\/p>\n<p>\u306a\u304a\u3001\u304a\u306a\u3058\u8457\u8005\u306b\u3088\u3063\u3066 1981 \u5e74\u306b <em>Software Tools in Pascal<\/em> \u304c\u3067\u3066\u3044\u308b\u3002\u6570\u5024\u8a08\u7b97\u4ee5\u5916\u306e\u8a08\u7b97\u6a5f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u5165\u9580\u306b\u3064\u304b\u308f\u308c\u308b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3068\u3057\u3066 Pascal \u304c\u3075\u3064\u3046\u306b\u306a\u3063\u305f\u304b\u3089\u3060\u3002\u308f\u305f\u3057\u306f\u305d\u306e\u672c\u3092\u898b\u305f\u304c\u8aad\u3093\u3067\u3044\u306a\u3044\u3002\u305d\u306e\u307b\u304b\u306e\u8a00\u8a9e\u306b\u3088\u308b\u7248\u306f\u51fa\u3066\u3044\u306a\u3044\u3088\u3046\u3060\u3002<\/p>\n<p>\u6298\u308a\u304b\u3048\u3057\u306e\u3042\u3068\u306b\u76ee\u6b21\u3092\u3064\u3051\u308b\u3002<br \/>\n<!--more--><br \/>\n===== \u76ee\u6b21 =====<br \/>\nPreface<br \/>\nContents<br \/>\nIntroduction<br \/>\n1. Getting Started<br \/>\n &#8211; 1.1 File Copying<br \/>\n &#8211; 1.2 Counting Characters<br \/>\n &#8211; 1.3 Counting Lines<br \/>\n &#8211; 1.4 Counting Words<br \/>\n &#8211; 1.5 Removing Tabs<br \/>\n &#8211; 1.6 Hand Compiling the Code<br \/>\n &#8211; 1.7 A Word on Structured Programming<br \/>\n &#8211; 1.8 Ratfor Synposis<br \/>\n &#8211; 1.9 Simple Versions of getc and putc<br \/>\n &#8211; 1.10 Prospectus<br \/>\n &#8211; Bibliographic Notes [\u4ee5\u4e0b\u7565]<br \/>\n2. Filters<br \/>\n &#8211; 2.1 Putting Tabs back<br \/>\n &#8211; 2.2 Command Arguments<br \/>\n &#8211; 2.3 Overstrikes<br \/>\n &#8211; 2.4 Text Compression<br \/>\n &#8211; 2.5 Text Expansion<br \/>\n &#8211; 2.6 Encryption<br \/>\n &#8211; 2.7 Character Transliteration<br \/>\n &#8211; 2.8 Numbers<br \/>\n &#8211; 2.9 Summary<br \/>\n3. Files<br \/>\n &#8211; 3.1 File Comparison<br \/>\n &#8211; 3.2 Connecting Files by Name<br \/>\n &#8211; 3.3 File Inclusion<br \/>\n &#8211; 3.4 File Concatenation<br \/>\n &#8211; 3.5 File Printer<br \/>\n &#8211; 3.6 Multi-stage Processing: Pipelines<br \/>\n &#8211; 3.7 Creating Files Dynamically<br \/>\n &#8211; 3.8 Putting it All Togeger: archive<br \/>\n &#8211; 3.9 More Archive Commands<br \/>\n &#8211; 3.10 Program Structure<br \/>\n &#8211; 3.11 Summary<br \/>\n4. Sorting<br \/>\n &#8211; 4.1 Bubble Sort<br \/>\n &#8211; 4.2 Shell Sort<br \/>\n &#8211; 4.3 Sorting Text<br \/>\n &#8211; 4.4 Quicksort<br \/>\n &#8211; 4.5 Sorting Big Files<br \/>\n &#8211; 4.6 Improvements<br \/>\n &#8211; 4.7 Separation of Function: unique<br \/>\n &#8211; 4.8 Permted Index<br \/>\n5. Text Patterns<br \/>\n &#8211; 5.1 Text Patterns<br \/>\n &#8211; 5.2 Implementation<br \/>\n &#8211; 5.3 Building Patterns<br \/>\n &#8211; 5.4 Some Measurements<br \/>\n &#8211; 5.5 Changing Text<br \/>\n &#8211; 5.6 Summary<br \/>\n6. Editing<br \/>\n &#8211; 6.1 What the User Sees<br \/>\n &#8211; 6.2 Implementation<br \/>\n &#8211; 6.3 Control Programs<br \/>\n &#8211; 6.4 Buffer Representations<br \/>\n &#8211; 6.5 More Commands: Delete, Insert, Change, Print line number, Move<br \/>\n &#8211; 6.6 The Susstitute Command<br \/>\n &#8211; 6.7 Input\/Output<br \/>\n &#8211; 6.8 Global Commands<br \/>\n &#8211; 6.9 The Main Routine<br \/>\n &#8211; 6.10 Scratch Files<br \/>\n &#8211; 6.11 Summary<br \/>\n7. Formatting<br \/>\n &#8211; 7.1 Commands<br \/>\n &#8211; 7.2 Construction<br \/>\n &#8211; 7.3 Command Decoding<br \/>\n &#8211; 7.4 Page Layout<br \/>\n &#8211; 7.5 Indenting<br \/>\n &#8211; 7.6 Filled Text<br \/>\n &#8211; 7.7 Right Margin Justification<br \/>\n &#8211; 7.8 Centering and Underlining<br \/>\n &#8211; 7.9 Some Measurements<br \/>\n &#8211; 7.10 Extensions<br \/>\n &#8211; 7.11 Bigger Things<br \/>\n8. Macro Processing<br \/>\n &#8211; 8.1 Simple Text Replacement<br \/>\n &#8211; 8.2 Table Lookup<br \/>\n &#8211; 8.3 Some Measurements<br \/>\n &#8211; 8.4 Macros with Arguments<br \/>\n &#8211; 8.5 Implementations<br \/>\n &#8211; 8.6 Conditionals and Other Built-ins<br \/>\n &#8211; 8.7 Applications<br \/>\n9. A Ratfor-Fortran Translator<br \/>\n &#8211; 9.1 Organization<br \/>\n &#8211; 9.2 Lexical Analysis<br \/>\n &#8211; 9.3 Code Generation Rules<br \/>\n &#8211; 9.4 Parsing<br \/>\n &#8211; 9.5 Code Generation<br \/>\n &#8211; 9.6 Output Routines<br \/>\n &#8211; 9.7 Extensions<br \/>\n &#8211; 9.8 Some Measurements<br \/>\n &#8211; 9.9 Some Usage Statistics<br \/>\nEpilogue<br \/>\nAppendix: Primitives and Symbolic Constants<br \/>\nIndex of First Lines [\u5404\u4f8b\u6587\u306e1\u884c\u3081\u306b\u3042\u308b\u305d\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u8aac\u660e\u3059\u308b\u30b3\u30e1\u30f3\u30c8\u306e\u4e00\u89a7]<br \/>\nIndex<br \/>\n==========<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Brian W. Kernighan &#038; P. J. Plauger, 1976: Software Tools.Reading MA USA: Addison-Wesley Pulbishing Compan [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-12040","post","type-post","status-publish","format-standard","hentry","category-dokusyo-memo-"],"_links":{"self":[{"href":"https:\/\/macroscope.world.coocan.jp\/yukukawa\/index.php?rest_route=\/wp\/v2\/posts\/12040","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/macroscope.world.coocan.jp\/yukukawa\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/macroscope.world.coocan.jp\/yukukawa\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/macroscope.world.coocan.jp\/yukukawa\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/macroscope.world.coocan.jp\/yukukawa\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12040"}],"version-history":[{"count":10,"href":"https:\/\/macroscope.world.coocan.jp\/yukukawa\/index.php?rest_route=\/wp\/v2\/posts\/12040\/revisions"}],"predecessor-version":[{"id":12105,"href":"https:\/\/macroscope.world.coocan.jp\/yukukawa\/index.php?rest_route=\/wp\/v2\/posts\/12040\/revisions\/12105"}],"wp:attachment":[{"href":"https:\/\/macroscope.world.coocan.jp\/yukukawa\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/macroscope.world.coocan.jp\/yukukawa\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/macroscope.world.coocan.jp\/yukukawa\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}