{"title":"Polar opposites: next generation languages and architectures","authors":"K. McKinley","doi":"10.1145/1065895.1065900","DOIUrl":null,"url":null,"abstract":"Future hardware technology is on a collision course with modern programming languages. Adoption of programming languages is rare and slow, but programmers are now embracing high-level object-oriented languages such as Java and C# due to their software engineering benefits which include (1) fast development through code reuse and garbage collection; (2) ease of maintenance through encapsulation and object-orientation; (3) reduced errors through type safety, pointer disciplines, and garbage collection; and (4) portability. These programs use small methods, dynamic class binding, heavy memory allocation, short-lived objects, and pointer data structures, and thus obscure parallelism, locality, and control flow, in direct conflict with hardware trends.","PeriodicalId":365109,"journal":{"name":"Memory System Performance","volume":"58 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2004-06-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Memory System Performance","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1065895.1065900","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
Abstract
Future hardware technology is on a collision course with modern programming languages. Adoption of programming languages is rare and slow, but programmers are now embracing high-level object-oriented languages such as Java and C# due to their software engineering benefits which include (1) fast development through code reuse and garbage collection; (2) ease of maintenance through encapsulation and object-orientation; (3) reduced errors through type safety, pointer disciplines, and garbage collection; and (4) portability. These programs use small methods, dynamic class binding, heavy memory allocation, short-lived objects, and pointer data structures, and thus obscure parallelism, locality, and control flow, in direct conflict with hardware trends.