Trading off Complexity for Expressiveness in Programming Languages: Visions and Preliminary Experiences

10/04/2019 ∙ by Vincenzo De Florio, et al. ∙ 0

When programming resource-scarce embedded smart devices, the designer often requires both the low-level system programming features of a language such as C and higher level capability typical of a language like Java. The choice of a particular language typically implies trade offs between conflicting design goals such as performance, costs, and overheads. The large variety of languages, virtual machines, and translators provides the designer with a dense trade off space, ranging from minimalistic to rich full-fledged approaches, but once a choice is made it is often difficult for the designer to revise it. In this work we propose a system of light-weighted and modular extensions as a method to flexibly reshape the target programming language as needed, adding only those application layer features that match the current design goals. In so doing complexity is made transparent, but not hidden: While the programmer can benefit of higher level constructs, the designer can deal with modular building blocks each characterized by a certain algorithmic complexity and therefore each accountable for a given share of the overhead. As a result the designer is given a finer control on the amount of resources that are consumed by the run-time executive of the chosen programming language.

READ FULL TEXT VIEW PDF
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

References

  • [1] F. Cristian. Understanding fault-tolerant distributed systems. Comm. ACM, 34(2):56–78, Feb. 1991.
  • [2] —. Cost-effective software reliability through autonomic tuning of system resources. In Proc. of the Applied Reliability Symp., Europe, April 2010.
  • [3] —. Reflective and refractive variables: A model for effective and maintainable adaptive-and-dependable software. In Proc. of the 33rd Conf. on Software Engineering and Advanced Applications (SEEA 2007), Lübeck, Germany, Aug. 2007.
  • [4] —. Design tool to express failure detection protocols. IET Software, 4(2):119–133, 2010.
  • [5] —. Flexible development of dependability services: An experience derived from energy automation systems. In Proc. of 9th IEEE Conf. on Eng. of Comp. Based Systems (ECBS), Lund, Sweden, April 2002.
  • [6] —. PvmLinda: Integration of two different computation paradigms. In Proc. of the 1st Conf. on Massively Parallel Computing Systems (MPCS’94), pages 488–496, Ischia, Italy, May 1994.
  • [7] B. De Win, T. Goovaerts, W. Joosen, P. Philippaerts, F. Piessens, and Y. Younan. Security Middleware for Mobile Applications. In Middleware for Network Eccentric and Mobile Applications, chapter 12, pages 305–322. Springer, 2009.
  • [8] G. Deconinck et al. Stable memory in substation automation: a case study. In Proc. of the 28th Int. Symp. on Fault-Tolerant Computing (FTCS-28), pages 452–457, Munich, Germany, June 1998.
  • [9] G. Deconinck et al. Integrating recovery strategies into a primary substation automation system. In Proc. of the Int.l Conf. on Dependable Systems and Networks (DSN-2003), 2003.
  • [10] A. K. Dey, G. D. Abowd, and D. Salber. A conceptual framework and a toolkit for supporting the rapid prototyping of context-aware applications. Human-Computer Interaction, 16(2):97–166, Dec. 2001.
  • [11] I. Dividend. Toyota’s Electromagnetic Interference Troubles: Just the Tip of the Iceberg, 2 2010. Available online: http://seekingalpha.com/article/187021-toyota-s-electromagnetic-interference-troubles-just-the-tip-of-the-iceberg.
  • [12] P. T. Eugster, B. Garbinato, and A. Holzer. Middleware support for context aware applications. In Middleware for Network Eccentric and Mobile Applications, chapter 14, pages 305–322. Springer, 2009.
  • [13] B. W. Kernighan and D. M. Ritchie. The C Programming Language. Prentice-Hall, Englewood Cliffs, NJ, 2nd edition, 1988.
  • [14] E. Kohler et al. The click modular router. ACM Trans. on Comp. Systems, 18(3):263–297, Aug. 2000.
  • [15] N. G. Leveson. Safeware: Systems Safety and Computers. Addison-Wesley, 1995.
  • [16] J. Levine, T. Mason, and D. Brown. Lex & YACC. O‘Reilly, 2nd ed., 1992.
  • [17] T. S. Perry and L. Geppert. Do portable electronics endanger flight? The evidence mounts. IEEE Spectrum, 33(9):26–33, 1996.
  • [18] D. J. Taylor, D. E. Morgan, and J. P. Black. Redundancy in data structures: Improving software fault tolerance. IEEE Trans. on Soft. Eng., 6(6):585–594, Nov. 1980.
  • [19] P. Tekla. Toyota’s Troubles Put EMI Back Into The Spotlight, 2 2010. Available online: http://spectrum.ieee.org/tech-talk/green-tech/advan- ced-cars/toyotas-troubles-put-emi-back-into-the-spotlight.
  • [20] Tiobe. TIOBE Programming Community Index for July 2010, 7 2010. Available online: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html.
  • [21] C. Weiss. Consultants Point to Electromagnetic Interference In Toyota Problems, 3 2010. Available online: http://motorcrave.com/consultants-point-to-electro- magnetic-interference-in-toyota-problems/5927.