Language Design : A Cognitive Science Approach ( Full Presentation )

Factors in Language Design. Programming language design and evolution are often driven by largely technical factors, such as changes in hardware (e.g., multi-core, GPU) and support for particular paradigms (e.g., objectoriented, functional). The impact of design decisions on usability, however, is rarely evaluated in a scientific manner [7]. Instead, widely-used languages are either advanced by a committee of experts (C++, Java), or by a single expert (Python, Ruby). Feedback from the community is important in both cases, but the decision to accept or reject a given feature ultimately lies with one or more experts. This process works well except in cases where experts disagree – i.e., technical matters alone are not enough to judge a feature. For these situations, there is currently no objective method for resolving disagreements.

[1]  Chris Parnin,et al.  A Cognitive Neuroscience Perspective on Memory for Programming Tasks , 2010, PPIG.

[2]  F. Gobet,et al.  Computational Modelling of Mental Imagery in Chess: A Sensitivity Analysis , 2008 .

[3]  Chris R. Douce The Stores Model of Code Cognition , 2008, PPIG.

[4]  Colin G. Johnson,et al.  Roles of Variables and Program Analysis , 2005 .

[5]  Françoise Détienne,et al.  Software Design — Cognitive Aspects , 2001, Practitioner Series.

[6]  Khaled El-Emam,et al.  Object-oriented metrics: A review of theory and practice , 2002 .

[7]  Herbert A. Simon,et al.  Templates in Chess Memory: A Mechanism for Recalling Several Boards , 1996, Cognitive Psychology.

[8]  Fernand Gobet,et al.  Perception and Memory in Chess , 1996, J. Int. Comput. Games Assoc..

[9]  Brian Henderson-Sellers,et al.  A conceptual model of cognitive complexity of elements of the programming process , 1995, Inf. Softw. Technol..

[10]  Ted J. Biggerstaff,et al.  Program understanding and the concept assignment problem , 1994, CACM.

[11]  Thomas R. G. Green,et al.  Cognitive dimensions of notations , 1990 .

[12]  F. Détienne Program understanding and knowledge organization: the influence of acquired schemata , 1990 .

[13]  Herbert A. Simon,et al.  EPAM-like Models of Recognition and Learning , 1984, Cogn. Sci..

[14]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[15]  Maurice H. Halstead,et al.  Elements of software science (Operating and programming systems series) , 1977 .

[16]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[17]  G. A. Miller THE PSYCHOLOGICAL REVIEW THE MAGICAL NUMBER SEVEN, PLUS OR MINUS TWO: SOME LIMITS ON OUR CAPACITY FOR PROCESSING INFORMATION 1 , 1956 .