为什么黑匣子如此难以复用?

  • Talk Overview: Gregor Kiczales presented at OOPSLA'94 and ICSE-17, aiming to provide new words for thinking about problems and systems related to abstraction. He emphasized that while the problems and systems aren't entirely new, new framing words can help better understand existing and future solutions.
  • Personal Background: Kiczales started hacking computers in high school with Basic on PDP-11. He later studied mechanical engineering and returned to computer science, getting excited about high-level modularity. Working on the Common Lisp Object System (CLOS) project, he faced the reality that implementing a language in a high-level way didn't always lead to optimal performance.
  • Black Box Abstraction and Problems: Black box abstraction is a common system architecture where components present interfaces hiding implementation details. In the spreadsheet example, it seems simple to implement the display on top of a window system, but implementation issues like performance characteristics (mapping dilemmas) show through the interface, causing problems like hematomas (duplication) and coding between the lines. Examples include virtual memory (page replacement policy), programming languages (procedure abstraction, array layout), and other systems.
  • Old Solutions and New Approaches: There are existing solutions like compiler switches and lightweight windows that give clients control over mapping decisions. In the virtual memory case, object-oriented solutions have evolved over the years, allowing clients to control paging policies. The reflection metaphor is proposed as a way to divide control over mapping decisions, with base and meta interfaces. OO programming helps with incrementality and scope control. Compiler techniques like late code generation and incremental specialization also play a role.
  • Remaining Work and Future Goals: Identifying mapping dilemmas and designing meta interfaces are challenges. Frameworks and adaptive software can help specify protocols. Object-oriented programming has limitations, and other approaches are being explored. Methodologies for using meta-interfaces and verification are issues to address. There is also a need to merge the control of behavior with the control of mapping decisions. In the long term, the goal is to have multiple abstract descriptions that automatically run and interact to capture different aspects of a system.
  • Value of Better Words: Better words for talking about these problems can be used for code analysis and negotiating functionality with substrate vendors. They also help the community flesh out the abstraction framework.
阅读 9
0 条评论