The Tyranny of the Vital Few: The Pareto Principle in Language Design
Victor Winter, James Perry, Harvey Siy, Satish Srinivasan, Ben Farkas, James McCoy
DOI: 10.4236/jsea.2011.43016   PDF    HTML     5,231 Downloads   9,683 Views   Citations


Modern high-level programming languages often contain constructs whose semantics are non-trivial. In practice however, software developers generally restrict the use of such constructs to settings in which their semantics is simple (programmers use language constructs in ways they understand and can reason about). As a result, when developing tools for analyzing and manipulating software, a disproportionate amount of effort ends up being spent developing capabilities needed to analyze constructs in settings that are infrequently used. This paper takes the position that such distinctions between theory and practice are an important measure of the analyzability of a language.

Share and Cite:

V. Winter, J. Perry, H. Siy, S. Srinivasan, B. Farkas and J. McCoy, "The Tyranny of the Vital Few: The Pareto Principle in Language Design," Journal of Software Engineering and Applications, Vol. 4 No. 3, 2011, pp. 146-155. doi: 10.4236/jsea.2011.43016.

Conflicts of Interest

The authors declare no conflicts of interest.


[1] V. Pareto, “Manuale di Economia Politica,” Piccola Biblioteca Scientifica, Milan, 1906. English Translation by A. Schwier, “Manual of Political Economy,” Kelley Publishers, New York, 1971.
[2] S. Ballmer, “Connecting with Customers,” 2002. customers.mspx.
[3] L. Hendren and G. Gao, “Designing Programming Languages for Analyzability: A Fresh Look at Pointer Data Structures,” Proceedings of the International Conference on Computer Languages, Oakland, 1992, pp. 242-251. doi:10.1109/ICCL.1992.185488
[4] V. L. Winter, “The TL System,” 15 November 2010.
[5] J. Gosling, B. Joy, G. Steele and G. Bracha, “The Java Language Specification,” Third Edition, Addison-Wesley, Boston, 2005.
[6] G. L. Wickstrom, J. Davis, S. E. Morrison, S. Roach and V. L. Winter, “The SSP: An Example of High-Assurance System Engineering,” Proceedings of the 8th IEEE International Symposium on High Assurance Systems Engineering (HASE), Tampa, March 2004, pp. 167-177.
[7] T. Lindholm and F. Yellin, Ed., “The Java Virtual Machine,” Second Edition, Addison-Wesley, Boston, 1999.
[8] Z. Chen, “Java Card? Technology for Smart Cards: Architecture and Programmer’s Guide,” Prentice-Hall, Upper Saddle River, 2000.
[9] Oracle Sun Developer Network, “Java Card Platform Specification 2.2.2,” 15 November 2010. html
[10] V. L. Winter and J. Beranek, “Program Transformation Using HATS 1.84,” In: R. L?mmel, J. Saraiva and J. Visser, Ed., Generative and Transformational Techniques in Software Engineering (GTTSE), LNCS Vol. 4143, Springer, Berlin, 2006, pp. 378-396. doi:10.1007/11877028_15
[11] V. L. Winter, A. Mametjanov, S. E. Morrison, J. A. McCoy and G. L. Wickstrom, “Transformation-Based Library Adaptation for Embedded Systems,” Proceedings of the 10th IEEE International Symposium on High Assurance Systems Engineering (HASE), Dallas, November 2007, pp. 209-218. doi:10.1109/HASE.2007.38
[12] V. L. Winter, “Stack-Based Strategic Control,” Preproceedings of the 7th International Workshop on Reduction Strategies in Rewriting and Programming, Paris, June 2007.
[13] Oracle Corporation, “Code Conventions for the Java Programming Language,” 1999.
[14] E. Pietriga, “A Toolkit for Addressing HCI Issues in Visual Language Environments,” IEEE Symposium on Visual Languages and Human-Centric Computing (VL/ HCC), Dallas, September 2005, pp. 145-152.
[15] Eclipse, “Eclipse,”21 July 2010.
[16] Oracle, “NetBeans,” 21 July 2010.
[17] JetBrains, “IntelliJ IDEA: The Most Intelligent Java IDE,” 12 October 2010.
[18] D. Rayside and K. Kontogiannis, “Extracting Java Library Subsets for Deployment on Embedded Systems,” Science of Computer Programming, Vol. 45, No. 2-3, November-December 2002, pp. 245-270. doi:10.1016/S0167-6423(02)00059-X
[19] S. Morrison, “SSP Class Loader Responsibilities,” Technical Report (Internal), Sandia National Laboratories, Albuquerque, 2005.
[20] M. Shafer, T. Ekman and O. de Moor, “Sound and Extensible Renaming for Java,” Proceedings of the 23rd ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications (OOPSLA), Orlando, 2008, pp. 277-294. doi:10.1145/1449764.1449787
[21] D. Smith and R. Cartwright, “Java Type Inference is Broken: Can We Fix It?” Proceedings of the 23rd ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications (OOPSLA), Orlando, 2008, pp. 505-524. doi:10.1145/1449764.1449804
[22] K. Louden, “Programming Languages: Principles and Practice,” Cengage Learning, 2003.

Copyright © 2023 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.