Knowledge (XXG)

ISWIM

Source 📝

32: 336:
found in modern functional languages. ISWIM variables did not have explicit type declarations and it seems likely (although not explicitly stated in the 1966 paper) that Landin intended the language to be dynamically typed, like LISP and unlike
331:
A notable semantic feature was the ability to define new data types, as a (possibly recursive) sum of products. This was done using a somewhat verbose natural language style description, but apart from notation amounts exactly to the
394:
Another line of descent from ISWIM is to strip out the imperative features (assignment and the J operator) leaving a purely functional language. It then becomes possible to switch to
675: 563:
The ISWIM paper also has the first appearance of algebraic type definitions used to define structures. This is done in words, but the sum-of-products idea is clearly there
655: 665: 597:(September 1969). GEDANKEN: a simple typeless language which permits functional data structures and co-routines (Report). Argonne National Laboratory. 660: 550: 512: 53: 580: 455: 75: 320:
clauses (auxiliary definitions including equations among variables), conditional expressions and function definitions. Along with
517: 415: 411: 222: 165: 670: 419: 238: 181: 177: 20: 407: 399: 218: 161: 149: 46: 40: 537:, Lecture Notes in Computer Science, vol. 7829, Berlin, Heidelberg: Springer Berlin Heidelberg, pp. 1–20, 355: 321: 403: 376: 226: 213:
Although not implemented, it has proved very influential in the development of programming languages, especially
206: 169: 57: 367:, captured most of Landin's concepts, including powerful transfer-of-control operations. Both of these were 250: 214: 103: 99: 269: 234: 197: 94: 489: 333: 631: 467: 546: 304: 621: 594: 538: 459: 360: 284: 273: 395: 261:
to which are added mutable variables and assignment and a powerful control mechanism: the
258: 254: 204:
and first described in his article "The Next 700 Programming Languages", published in the
110: 485: 388: 342: 649: 440: 300: 635: 575:
Evans, Art (1968). "PAL: a language designed for teaching programming linguistics".
516: prior to 1 November 2008 and incorporated under the "relicensing" terms of the 471: 372: 287:. A goal of ISWIM was to look more like mathematical notation, so Landin abandoned 280: 201: 115: 532: 19:"I See What You Mean" redirects here. For the sculpture in Denver, Colorado, see 542: 368: 384: 262: 626: 609: 463: 145: 353:
No direct implementation of ISWIM was attempted but Art Evan's language
230: 173: 341:; but it is also possible that he intended to develop some form of 338: 288: 316:
clauses. An ISWIM program is a single expression qualified by
279:
The operational semantics of ISWIM are defined using Landin's
25: 507: 324:, ISWIM was one of the first programming languages to use 310:
A notationally distinctive feature of ISWIM is its use of
610:"A definition of an ISWIM-like language via Scheme" 490:
Call-by-Name, Call-by Value and the Lambda Calculus
155: 139: 121: 109: 93: 253:language with a functional core, consisting of a 608:Ivanović, Mirjana; Budimac, Zoran (April 1993). 534:Some History of Functional Programming Languages 506:This article is based on material taken from 8: 268:. Being based on lambda calculus, ISWIM has 88: 676:History of computing in the United Kingdom 87: 625: 398:. This path led to programming languages 76:Learn how and when to remove this message 39:This article includes a list of general 431: 200:(or a family of languages) devised by 656:Programming languages created in 1966 291:'s semicolons between statements and 7: 513:Free On-line Dictionary of Computing 441:"The Next 700 Programming Languages" 581:Association for Computing Machinery 577:Proceedings ACM National Conference 456:Association for Computing Machinery 666:Experimental programming languages 299:blocks and replaced them with the 45:it lacks sufficient corresponding 14: 379:may be considered equivalent to I 30: 349:Implementations and derivatives 283:and use call-by-value, that is 661:Academic programming languages 1: 439:Landin, P. J. (March 1966). 21:I See What You Mean (Argent) 579:. ACM National Conference. 543:10.1007/978-3-642-40447-4_1 127:; 58 years ago 692: 233:and their successors, and 196:) is an abstract computer 18: 448:Communications of the ACM 404:Kent Recursive Calculator 207:Communications of the ACM 160: 144: 520:, version 1.3 or later. 60:more precise citations. 531:Turner, D. A. (2013), 270:higher-order functions 251:imperative programming 215:functional programming 194:If You See What I Mean 627:10.1145/152739.152743 464:10.1145/365230.365257 303:and scoping based on 671:Functional languages 334:algebraic data types 235:dataflow programming 198:programming language 16:Programming language 614:ACM SIGPLAN Notices 122:First appeared 90: 255:syntactic sugaring 217:languages such as 595:Reynolds, John C. 552:978-3-642-40446-7 382: 369:typed dynamically 187: 186: 86: 85: 78: 683: 640: 639: 629: 605: 599: 598: 591: 585: 584: 572: 566: 565: 560: 559: 528: 522: 521: 503: 497: 496: 494: 482: 476: 475: 445: 436: 380: 361:John C. Reynolds 314: 298: 294: 285:eager evaluation 274:lexically scoped 135: 133: 128: 111:Designed by 91: 81: 74: 70: 67: 61: 56:this article by 47:inline citations 34: 33: 26: 691: 690: 686: 685: 684: 682: 681: 680: 646: 645: 644: 643: 607: 606: 602: 593: 592: 588: 574: 573: 569: 557: 555: 553: 530: 529: 525: 505: 504: 500: 492: 486:Plotkin, Gordon 484: 483: 479: 443: 438: 437: 433: 428: 396:lazy evaluation 351: 312: 296: 292: 259:lambda calculus 247: 237:languages like 131: 129: 126: 82: 71: 65: 62: 52:Please help to 51: 35: 31: 24: 17: 12: 11: 5: 689: 687: 679: 678: 673: 668: 663: 658: 648: 647: 642: 641: 600: 586: 567: 551: 523: 498: 477: 430: 429: 427: 424: 389:type inference 350: 347: 343:type inference 246: 243: 185: 184: 158: 157: 153: 152: 142: 141: 137: 136: 123: 119: 118: 113: 107: 106: 97: 84: 83: 38: 36: 29: 15: 13: 10: 9: 6: 4: 3: 2: 688: 677: 674: 672: 669: 667: 664: 662: 659: 657: 654: 653: 651: 637: 633: 628: 623: 619: 615: 611: 604: 601: 596: 590: 587: 582: 578: 571: 568: 564: 554: 548: 544: 540: 536: 535: 527: 524: 519: 515: 514: 509: 502: 499: 491: 487: 481: 478: 473: 469: 465: 461: 457: 453: 449: 442: 435: 432: 425: 423: 421: 417: 413: 409: 405: 401: 397: 392: 390: 386: 378: 374: 370: 366: 362: 358: 357: 348: 346: 344: 340: 335: 329: 327: 323: 319: 315: 308: 306: 302: 301:off-side rule 290: 286: 282: 277: 275: 271: 267: 265: 264:program point 260: 256: 252: 244: 242: 240: 236: 232: 228: 224: 220: 216: 211: 209: 208: 203: 199: 195: 191: 183: 179: 175: 171: 167: 163: 159: 154: 151: 147: 143: 140:Influenced by 138: 124: 120: 117: 114: 112: 108: 105: 101: 98: 96: 92: 80: 77: 69: 66:December 2011 59: 55: 49: 48: 42: 37: 28: 27: 22: 620:(4): 29–38. 617: 613: 603: 589: 576: 570: 562: 556:, retrieved 533: 526: 511: 501: 480: 451: 447: 434: 393: 383:without the 373:Robin Milner 364: 354: 352: 330: 325: 317: 311: 309: 281:SECD machine 278: 263: 249:ISWIM is an 248: 212: 205: 202:Peter Landin 193: 189: 188: 116:Peter Landin 72: 63: 44: 458:: 157–165. 363:' language 305:indentation 276:variables. 58:introducing 650:Categories 558:2024-01-28 426:References 385:J operator 156:Influenced 104:functional 100:Imperative 41:references 495:(Report). 387:and with 328:clauses. 210:in 1966. 636:14379260 488:(1975). 472:13409665 365:Gedanken 266:operator 146:ALGOL 60 95:Paradigm 510:at the 416:Haskell 412:Miranda 406:(KRC), 231:Haskell 223:Miranda 174:Haskell 166:Miranda 130: ( 54:improve 634:  549:  470:  418:, and 359:, and 245:Design 43:, but 632:S2CID 508:ISWIM 493:(PDF) 468:S2CID 454:(3). 444:(PDF) 420:Clean 339:ALGOL 326:where 318:where 313:where 293:begin 289:ALGOL 239:Lucid 190:ISWIM 182:Lucid 178:Clean 89:ISWIM 547:ISBN 518:GFDL 408:Hope 400:SASL 381:SWIM 295:... 272:and 219:SASL 162:SASL 150:Lisp 132:1966 125:1966 622:doi 539:doi 460:doi 375:'s 356:PAL 322:CPL 297:end 257:of 652:: 630:. 618:28 616:. 612:. 561:, 545:, 466:. 450:. 446:. 422:. 414:, 410:, 402:, 391:. 377:ML 371:. 345:. 307:. 241:. 229:, 227:ML 225:, 221:, 180:, 176:, 172:, 170:ML 168:, 164:, 148:, 102:, 638:. 624:: 583:. 541:: 474:. 462:: 452:9 192:( 134:) 79:) 73:( 68:) 64:( 50:. 23:.

Index

I See What You Mean (Argent)
references
inline citations
improve
introducing
Learn how and when to remove this message
Paradigm
Imperative
functional
Designed by
Peter Landin
ALGOL 60
Lisp
SASL
Miranda
ML
Haskell
Clean
Lucid
programming language
Peter Landin
Communications of the ACM
functional programming
SASL
Miranda
ML
Haskell
dataflow programming
Lucid
imperative programming

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.