Knowledge

Object-based language

Source 📝

1347: 159:. Statically checking prototype-based languages can be difficult, because these languages often allow objects to be dynamically extended with new behavior, and even to have their parent object (from which they inherit) changed, at 316:
Ada 83 itself is generally not considered to be object-oriented; rather, according to the terminology of Wegner , it is said to be object-based, since it provides only a restricted form of inheritance and it lacks
121:
is usually applied to those object-based languages that are not also object-oriented, although all object-oriented languages are also object-based, by definition. Instead, the terms
441: 1188: 347: 411: 360: 510: 445: 1181: 140:
languages, true object-oriented languages that lack classes, but in which objects instead inherit their code and data directly from other
340: 47:. Object-based languages that do not support inheritance or subtyping are usually not considered to be true object-oriented languages. 1412: 193: 34: 1388: 574: 1174: 924: 786: 1281: 1271: 930: 1329: 1286: 1276: 1266: 333: 1243: 1115: 863: 189: 583: 51: 114:. These languages all support the definition of an object as a data structure, but lack polymorphism and inheritance. 160: 1258: 955: 635: 579: 1238: 815: 688: 619: 554: 477: 197: 1407: 1318: 1233: 993: 756: 386: 274: 216: 185: 95: 1248: 771: 761: 539: 79: 71: 1381: 1155: 1135: 1065: 1008: 970: 960: 920: 845: 781: 751: 678: 667: 564: 544: 519: 482: 1110: 873: 840: 735: 711: 673: 653: 549: 458: 436: 421: 220: 181: 137: 87: 83: 43: 1307: 1057: 1043: 950: 910: 835: 741: 721: 588: 467: 401: 103: 259:
Conference proceedings on Object-oriented programming systems, languages and applications - OOPSLA '87
1150: 915: 825: 805: 791: 29: 1130: 1090: 1033: 965: 703: 534: 1374: 1140: 1120: 1061: 1048: 1028: 855: 592: 496: 454: 325: 155:
Both object-based and object-oriented languages (whether class-based or prototype-based) may be
1362: 1100: 1075: 1069: 1013: 975: 663: 658: 610: 505: 406: 378: 369: 227: 129:
are normally used as mutually exclusive alternatives, rather than as categories that overlap.
1002: 998: 940: 892: 102:. Examples of a language that is object-based, but not object-oriented are early versions of 1354: 1226: 1197: 1145: 1125: 1085: 887: 746: 615: 602: 356: 24: 8: 1080: 1018: 830: 810: 796: 528: 396: 391: 897: 850: 820: 766: 625: 524: 416: 280: 145: 1221: 1216: 1053: 945: 800: 776: 716: 683: 645: 630: 569: 270: 251: 91: 935: 867: 731: 472: 306:. Swiss Federal Institute of Technology in Lausanne Software Engineering Laboratory 262: 284: 1166: 985: 859: 725: 426: 1346: 1358: 1037: 693: 559: 1401: 1023: 156: 1211: 299: 107: 99: 905: 67: 266: 149: 111: 59: 38: 355: 27:
that uses the idea of encapsulating state and operations inside
203: 55: 167:
Difference between object-oriented and object-based languages
212: 206:
of the features of OOP, such as polymorphism or inheritance.
63: 75: 180:
Object-oriented languages support all of the features of
144:
objects. An example of a commonly used prototype-based
297: 1196: 1399: 298:Barbey, S.; Kempe, M.; Strohmeier, A. (1993). 70:(which object model is based on Smalltalk's), 1382: 1182: 341: 20:may be used in a technical sense to describe 252:"Dimensions of object-based language design" 66:(which object model is based on Simula's), 1389: 1375: 1189: 1175: 348: 334: 33:. Object-based languages need not support 412:Programming in the large and in the small 300:"Object-Oriented Programming with Ada 9X" 54:, in rough chronological order, include 1400: 249: 1170: 329: 1341: 41:, but those that do are also termed 13: 261:. Vol. 22. pp. 168–182. 14: 1424: 202:Object-based languages support a 1413:Programming language topic stubs 1345: 956:Partitioned global address space 250:Wegner, Peter (December 1987). 1198:Types of programming languages 291: 257:. In Meyrowitz, Norman (ed.). 243: 1: 236: 1361:. You can help Knowledge by 1330:Programming paradigms navbox 483:Uniform Function Call Syntax 7: 1298: 951:Parallel programming models 925:Concurrent constraint logic 182:object-oriented programming 138:prototype-based programming 10: 1431: 1340: 1044:Metalinguistic abstraction 911:Automatic mutual exclusion 1257: 1204: 1099: 984: 916:Choreographic programming 886: 702: 644: 601: 504: 495: 435: 377: 368: 52:object-oriented languages 966:Relativistic programming 172:Object-oriented language 157:statically type-checked 1357:-related article is a 976:Structured concurrency 361:Comparison by language 304:Draft Technical Report 175:Object-based language 117:In practice, the term 78:(formerly REALbasic), 1408:Programming paradigms 1319:Programming languages 941:Multitier programming 757:Interface description 357:Programming paradigms 18:object-based language 1355:programming-language 132:Sometimes, the term 25:programming language 1081:Self-modifying code 689:Probabilistic logic 620:Functional reactive 575:Expression-oriented 529:Partial application 267:10.1145/38765.38823 168: 994:Attribute-oriented 767:List comprehension 712:Algebraic modeling 525:Anonymous function 417:Design by contract 387:Jackson structures 166: 146:scripting language 1370: 1369: 1308:Computer language 1295: 1294: 1164: 1163: 1054:Program synthesis 946:Organic computing 882: 881: 787:Non-English-based 762:Language-oriented 540:Purely functional 491: 490: 234: 233: 92:Visual Basic .NET 1420: 1391: 1384: 1377: 1349: 1342: 1334: 1328: 1323: 1317: 1312: 1306: 1191: 1184: 1177: 1168: 1167: 1066:by demonstration 971:Service-oriented 961:Process-oriented 936:Macroprogramming 921:Concurrent logic 792:Page description 782:Natural language 752:Grammar-oriented 679:Nondeterministic 668:Constraint logic 570:Point-free style 565:Functional logic 502: 501: 473:Immutable object 392:Block-structured 375: 374: 350: 343: 336: 327: 326: 320: 319: 313: 311: 295: 289: 288: 256: 247: 169: 165: 1430: 1429: 1423: 1422: 1421: 1419: 1418: 1417: 1398: 1397: 1396: 1395: 1338: 1332: 1326: 1321: 1315: 1310: 1304: 1301: 1296: 1291: 1253: 1244:Very high-level 1200: 1195: 1165: 1160: 1102: 1095: 986:Metaprogramming 980: 896: 891: 878: 860:Graph rewriting 698: 674:Inductive logic 654:Abductive logic 640: 597: 560:Dependent types 508: 487: 459:Prototype-based 439: 437:Object-oriented 431: 427:Nested function 422:Invariant-based 364: 354: 324: 323: 309: 307: 296: 292: 277: 254: 248: 244: 239: 127:object-oriented 44:object-oriented 12: 11: 5: 1428: 1427: 1416: 1415: 1410: 1394: 1393: 1386: 1379: 1371: 1368: 1367: 1350: 1336: 1335: 1324: 1313: 1300: 1297: 1293: 1292: 1290: 1289: 1284: 1279: 1274: 1269: 1263: 1261: 1255: 1254: 1252: 1251: 1246: 1241: 1236: 1230: 1229: 1224: 1219: 1214: 1208: 1206: 1202: 1201: 1194: 1193: 1186: 1179: 1171: 1162: 1161: 1159: 1158: 1153: 1148: 1143: 1138: 1133: 1128: 1123: 1118: 1113: 1107: 1105: 1097: 1096: 1094: 1093: 1088: 1083: 1078: 1073: 1051: 1046: 1041: 1031: 1026: 1021: 1016: 1011: 1006: 996: 990: 988: 982: 981: 979: 978: 973: 968: 963: 958: 953: 948: 943: 938: 933: 928: 918: 913: 908: 902: 900: 884: 883: 880: 879: 877: 876: 871: 856:Transformation 853: 848: 843: 838: 833: 828: 823: 818: 813: 808: 803: 794: 789: 784: 779: 774: 769: 764: 759: 754: 749: 744: 742:Differentiable 739: 729: 722:Automata-based 719: 714: 708: 706: 700: 699: 697: 696: 691: 686: 681: 676: 671: 661: 656: 650: 648: 642: 641: 639: 638: 633: 628: 623: 613: 607: 605: 599: 598: 596: 595: 589:Function-level 586: 577: 572: 567: 562: 557: 552: 547: 542: 537: 532: 522: 516: 514: 499: 493: 492: 489: 488: 486: 485: 480: 475: 470: 465: 451: 449: 433: 432: 430: 429: 424: 419: 414: 409: 404: 402:Non-structured 399: 394: 389: 383: 381: 372: 366: 365: 353: 352: 345: 338: 330: 322: 321: 290: 275: 241: 240: 238: 235: 232: 231: 224: 208: 207: 200: 177: 176: 173: 136:is applied to 9: 6: 4: 3: 2: 1426: 1425: 1414: 1411: 1409: 1406: 1405: 1403: 1392: 1387: 1385: 1380: 1378: 1373: 1372: 1366: 1364: 1360: 1356: 1351: 1348: 1344: 1343: 1339: 1331: 1325: 1320: 1314: 1309: 1303: 1302: 1288: 1285: 1283: 1280: 1278: 1275: 1273: 1270: 1268: 1265: 1264: 1262: 1260: 1256: 1250: 1247: 1245: 1242: 1240: 1237: 1235: 1232: 1231: 1228: 1225: 1223: 1220: 1218: 1215: 1213: 1210: 1209: 1207: 1203: 1199: 1192: 1187: 1185: 1180: 1178: 1173: 1172: 1169: 1157: 1154: 1152: 1149: 1147: 1144: 1142: 1139: 1137: 1134: 1132: 1129: 1127: 1126:Data-oriented 1124: 1122: 1119: 1117: 1114: 1112: 1109: 1108: 1106: 1104: 1098: 1092: 1089: 1087: 1084: 1082: 1079: 1077: 1074: 1071: 1067: 1063: 1059: 1055: 1052: 1050: 1047: 1045: 1042: 1039: 1035: 1032: 1030: 1027: 1025: 1024:Homoiconicity 1022: 1020: 1017: 1015: 1012: 1010: 1007: 1004: 1000: 997: 995: 992: 991: 989: 987: 983: 977: 974: 972: 969: 967: 964: 962: 959: 957: 954: 952: 949: 947: 944: 942: 939: 937: 934: 932: 931:Concurrent OO 929: 926: 922: 919: 917: 914: 912: 909: 907: 904: 903: 901: 899: 894: 889: 885: 875: 872: 869: 865: 861: 857: 854: 852: 849: 847: 844: 842: 839: 837: 834: 832: 829: 827: 826:Set-theoretic 824: 822: 819: 817: 814: 812: 809: 807: 806:Probabilistic 804: 802: 798: 795: 793: 790: 788: 785: 783: 780: 778: 775: 773: 770: 768: 765: 763: 760: 758: 755: 753: 750: 748: 745: 743: 740: 737: 733: 730: 727: 723: 720: 718: 715: 713: 710: 709: 707: 705: 701: 695: 692: 690: 687: 685: 682: 680: 677: 675: 672: 669: 665: 662: 660: 657: 655: 652: 651: 649: 647: 643: 637: 634: 632: 629: 627: 624: 621: 617: 614: 612: 609: 608: 606: 604: 600: 594: 590: 587: 585: 584:Concatenative 581: 578: 576: 573: 571: 568: 566: 563: 561: 558: 556: 553: 551: 548: 546: 543: 541: 538: 536: 533: 530: 526: 523: 521: 518: 517: 515: 512: 507: 503: 500: 498: 494: 484: 481: 479: 476: 474: 471: 469: 466: 464: 460: 456: 453: 452: 450: 447: 443: 438: 434: 428: 425: 423: 420: 418: 415: 413: 410: 408: 405: 403: 400: 398: 395: 393: 390: 388: 385: 384: 382: 380: 376: 373: 371: 367: 362: 358: 351: 346: 344: 339: 337: 332: 331: 328: 318: 317:polymorphism. 305: 301: 294: 286: 282: 278: 272: 268: 264: 260: 253: 246: 242: 229: 225: 222: 218: 214: 210: 209: 205: 201: 199: 195: 191: 190:encapsulation 187: 183: 179: 178: 174: 171: 170: 164: 162: 158: 153: 151: 147: 143: 139: 135: 130: 128: 124: 120: 115: 113: 109: 105: 101: 97: 93: 89: 85: 81: 77: 73: 69: 65: 61: 57: 53: 48: 46: 45: 40: 36: 32: 31: 26: 23: 19: 1363:expanding it 1352: 1337: 1333:}} 1327:{{ 1322:}} 1316:{{ 1311:}} 1305:{{ 1131:Event-driven 535:Higher-order 463:Object-based 462: 315: 308:. Retrieved 303: 293: 258: 245: 228:Visual Basic 198:polymorphism 154: 141: 134:object-based 133: 131: 126: 123:object-based 122: 119:object-based 118: 116: 108:Visual Basic 100:Fortran 2003 50:Examples of 49: 42: 28: 21: 17: 15: 1227:Interpreted 1141:Intentional 1121:Data-driven 1103:of concerns 1062:Inferential 1049:Multi-stage 1029:Interactive 906:Actor-based 893:distributed 836:Stack-based 636:Synchronous 593:Value-level 580:Applicative 497:Declarative 455:Class-based 310:15 December 230:(pre-.NET) 194:inheritance 186:abstraction 68:Objective-C 35:inheritance 1402:Categories 1259:Generation 1239:High-level 1116:Components 1101:Separation 1076:Reflective 1070:by example 1014:Extensible 888:Concurrent 864:Production 851:Templating 831:Simulation 816:Scientific 736:Spacecraft 664:Constraint 659:Answer set 611:Flow-based 511:comparison 506:Functional 478:Persistent 442:comparison 407:Procedural 379:Structured 370:Imperative 276:0897912470 237:References 226:Examples: 211:Examples: 150:JavaScript 112:Fortran 90 110:(VB), and 1234:Low-level 1003:Inductive 999:Automatic 821:Scripting 520:Recursive 60:Smalltalk 39:subtyping 16:The term 1299:See also 1249:Esoteric 1222:Compiled 1217:Assembly 1156:Subjects 1146:Literate 1136:Features 1091:Template 1086:Symbolic 1058:Bayesian 1038:Hygienic 898:parallel 777:Modeling 772:Low-code 747:End-user 684:Ontology 616:Reactive 603:Dataflow 142:template 1212:Machine 1111:Aspects 1019:Generic 1009:Dynamic 868:Pattern 846:Tactile 811:Quantum 801:filters 732:Command 631:Streams 626:Signals 397:Modular 184:(OOP): 161:runtime 30:objects 1282:Fourth 1272:Second 874:Visual 841:System 726:Action 550:Strict 285:819420 283:  273:  223:, etc. 204:subset 98:, and 80:Python 72:Eiffel 56:Simula 1353:This 1287:Fifth 1277:Third 1267:First 1205:Level 1151:Roles 1034:Macro 797:Pipes 717:Array 694:Query 646:Logic 555:GADTs 545:Total 468:Agent 281:S2CID 255:(PDF) 1359:stub 799:and 446:list 312:2013 271:ISBN 221:Java 125:and 88:Java 84:Ruby 76:Xojo 704:DSL 263:doi 213:C++ 148:is 104:Ada 64:C++ 37:or 22:any 1404:: 1068:, 1064:, 1060:, 866:, 862:, 591:, 582:, 461:, 457:, 444:, 314:. 302:. 279:. 269:. 219:, 217:C# 215:, 196:, 192:, 188:, 163:. 152:. 106:, 96:C# 94:, 90:, 86:, 82:, 74:, 62:, 58:, 1390:e 1383:t 1376:v 1365:. 1190:e 1183:t 1176:v 1072:) 1056:( 1040:) 1036:( 1005:) 1001:( 927:) 923:( 895:, 890:, 870:) 858:( 738:) 734:( 728:) 724:( 670:) 666:( 622:) 618:( 531:) 527:( 513:) 509:( 448:) 440:( 363:) 359:( 349:e 342:t 335:v 287:. 265::

Index

programming language
objects
inheritance
subtyping
object-oriented
object-oriented languages
Simula
Smalltalk
C++
Objective-C
Eiffel
Xojo
Python
Ruby
Java
Visual Basic .NET
C#
Fortran 2003
Ada
Visual Basic
Fortran 90
prototype-based programming
scripting language
JavaScript
statically type-checked
runtime
object-oriented programming
abstraction
encapsulation
inheritance

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