Current VM designs prioritise implementor freedom and performance, at the expense of other concerns of the end programmer. We motivate an alternative approach to VM design aiming to be unobtrusive in general, and prioritising two key concerns specifically: foreign function interfacing and support for runtime analysis tools (such as debuggers, profilers etc.). We describe our experiences building a Python VM in this manner, and identify some simple constraints that help enable low-overhead foreign function interfacing and direct use of native tools. We then discuss how to extend this towards a higher-performance VM suitable for Java or similar languages.
{"title":"Virtual machines should be invisible","authors":"Stephen Kell, Conrad Irwin","doi":"10.1145/2095050.2095099","DOIUrl":"https://doi.org/10.1145/2095050.2095099","url":null,"abstract":"Current VM designs prioritise implementor freedom and performance, at the expense of other concerns of the end programmer. We motivate an alternative approach to VM design aiming to be unobtrusive in general, and prioritising two key concerns specifically: foreign function interfacing and support for runtime analysis tools (such as debuggers, profilers etc.). We describe our experiences building a Python VM in this manner, and identify some simple constraints that help enable low-overhead foreign function interfacing and direct use of native tools. We then discuss how to extend this towards a higher-performance VM suitable for Java or similar languages.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131232753","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Ubiquitous learning research is about seamlessly enabling learning through the use of sensors that gather dataw from the learner surroundings and adapt learning contents accordingly. Nowadays, mobile devices play a big part of these systems due to their advanced capabilities, like communicating with other devices through different methods and standards, and the ability to connect other gadgets expanding functionality even further. On the other hand, sensors integrated with these systems are very advanced and sophisticated making it possible to gather tremendous amount of data. In this paper a new Ubiquitous Learning system architecture is presented. This new architecture enabled solutions for some major challenges in the field. A Ubiquitous Learning system design and implementation is presented as a use case. The system adapts learning contents based on applying an understanding degree detection algorithm on an input of brain signals collected from the learning student. The adapted learning contents are then sent back over to be displayed on a mobile device. The main focus of this paper is to show how the new architecture supports the necessary reliability and scalability for such systems. I'm proposing in this paper that using Cloud Computing and MapReduce as the architecture main building blocks lead to better approaches and solutions for these two problems. Evaluation showed the effectiveness of using the proposed architecture to support systems with an increasing number of users.
{"title":"Cloud computing and mapreduce for reliability and scalability of ubiquitous learning systems","authors":"S. Gad","doi":"10.1145/2095050.2095096","DOIUrl":"https://doi.org/10.1145/2095050.2095096","url":null,"abstract":"Ubiquitous learning research is about seamlessly enabling learning through the use of sensors that gather dataw from the learner surroundings and adapt learning contents accordingly. Nowadays, mobile devices play a big part of these systems due to their advanced capabilities, like communicating with other devices through different methods and standards, and the ability to connect other gadgets expanding functionality even further. On the other hand, sensors integrated with these systems are very advanced and sophisticated making it possible to gather tremendous amount of data. In this paper a new Ubiquitous Learning system architecture is presented. This new architecture enabled solutions for some major challenges in the field. A Ubiquitous Learning system design and implementation is presented as a use case. The system adapts learning contents based on applying an understanding degree detection algorithm on an input of brain signals collected from the learning student. The adapted learning contents are then sent back over to be displayed on a mobile device. The main focus of this paper is to show how the new architecture supports the necessary reliability and scalability for such systems. I'm proposing in this paper that using Cloud Computing and MapReduce as the architecture main building blocks lead to better approaches and solutions for these two problems. Evaluation showed the effectiveness of using the proposed architecture to support systems with an increasing number of users.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":"576 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123932104","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
We observe that small and medium enterprises who wish to adopt domain specific modeling techniques do so under different preconditions and with different expectations. In our report, we categorize our observations made in 7 different industrial branches. Further, we present the current state of our solution to provide guidance to both ends of stakeholders involved in a DSM development lifecycle, domain experts and DSL designers. By supporting a DSL development process with semantic knowledge bases and metrics, our goal is to make a DSL development feasible and beneficial through the guidance provided by EXAMINE and within the DIESEL-Framework.
{"title":"Guidance for domain specific modeling in small and medium enterprises","authors":"Henning Agt, R. Kutsche, Timo Wegeler","doi":"10.1145/2095050.2095062","DOIUrl":"https://doi.org/10.1145/2095050.2095062","url":null,"abstract":"We observe that small and medium enterprises who wish to adopt domain specific modeling techniques do so under different preconditions and with different expectations. In our report, we categorize our observations made in 7 different industrial branches. Further, we present the current state of our solution to provide guidance to both ends of stakeholders involved in a DSM development lifecycle, domain experts and DSL designers. By supporting a DSL development process with semantic knowledge bases and metrics, our goal is to make a DSL development feasible and beneficial through the guidance provided by EXAMINE and within the DIESEL-Framework.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121039225","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Howell R. Jordan, Goetz Botterweck, M. Huget, Rem W. Collier
This paper presents first steps towards a feature model, which can be used to compare actor-oriented, agent-oriented, and object-oriented programming languages. The feature model is derived from the existing literature on general concepts of programming, and validated against Erlang, Jason, and Java. The model acts as a tool to assist practitioners in selecting the most appropriate programming language for a given task, and is expected to form the basis of further high-level comparative studies in this area.
{"title":"A feature model of actor, agent, and object programming languages","authors":"Howell R. Jordan, Goetz Botterweck, M. Huget, Rem W. Collier","doi":"10.1145/2095050.2095077","DOIUrl":"https://doi.org/10.1145/2095050.2095077","url":null,"abstract":"This paper presents first steps towards a feature model, which can be used to compare actor-oriented, agent-oriented, and object-oriented programming languages. The feature model is derived from the existing literature on general concepts of programming, and validated against Erlang, Jason, and Java. The model acts as a tool to assist practitioners in selecting the most appropriate programming language for a given task, and is expected to form the basis of further high-level comparative studies in this area.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125128500","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
At CloudFlare[1, 2], we are about a year into our public release. Over the last six months we’ve seen exponential growth. CloudFlare provides a content delivery network currently serving over ten billion page views/month to over 200 million unique visitors. During July 2011 approximately ten percent of all people on the Internet visited a CloudFlare powered site at least once. Figure 1 shows monthly page views served by CloudFlare over the past year. We run a highly customized software stack on a limited number of powerful physical servers deployed in twelve data centers on three continents. The upshot of all of this is that we’ve been forced to rapidly code, and re-code, to take full advantage of 24 plus cores per machine. This experience report is a very brief survey of the programming models and debugging methodology CloudFlare uses. We first describe two ways in which CloudFlare deals with concurrency issues. We then compare bugs and features in two applications which are representative of the above paradigms.
{"title":"Locks, deadlocks and abstractions: experiences with multi-threaded programming at CloudFlare, Inc.","authors":"I. Pye","doi":"10.1145/2095050.2095073","DOIUrl":"https://doi.org/10.1145/2095050.2095073","url":null,"abstract":"At CloudFlare[1, 2], we are about a year into our public release. Over the last six months we’ve seen exponential growth. CloudFlare provides a content delivery network currently serving over ten billion page views/month to over 200 million unique visitors. During July 2011 approximately ten percent of all people on the Internet visited a CloudFlare powered site at least once. Figure 1 shows monthly page views served by CloudFlare over the past year. We run a highly customized software stack on a limited number of powerful physical servers deployed in twelve data centers on three continents. The upshot of all of this is that we’ve been forced to rapidly code, and re-code, to take full advantage of 24 plus cores per machine. This experience report is a very brief survey of the programming models and debugging methodology CloudFlare uses. We first describe two ways in which CloudFlare deals with concurrency issues. We then compare bugs and features in two applications which are representative of the above paradigms.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129260995","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A key weakness of agent frameworks is the difficulty of specifying and controlling the global (emergent) behavior of the Multi-Agent System (MAS) in which they operate. The spatial computing language Proto, however, compiles descriptions of global behavior into local behaviors that interact to produce the specified emergent behavior. In this paper, we show how Proto can be used as a tool for construction of multi-agent systems, allowing the MAS designer to express the global behavior, while still creating a distributed solution. We compare and contrast Proto's functionality to that of existing agent frameworks, showing how Proto is a good candidate for the agent community's first viable agent framework for societies of agents.
{"title":"An agent framework for agent societies","authors":"K. Usbeck, J. Beal","doi":"10.1145/2095050.2095082","DOIUrl":"https://doi.org/10.1145/2095050.2095082","url":null,"abstract":"A key weakness of agent frameworks is the difficulty of specifying and controlling the global (emergent) behavior of the Multi-Agent System (MAS) in which they operate. The spatial computing language Proto, however, compiles descriptions of global behavior into local behaviors that interact to produce the specified emergent behavior. In this paper, we show how Proto can be used as a tool for construction of multi-agent systems, allowing the MAS designer to express the global behavior, while still creating a distributed solution. We compare and contrast Proto's functionality to that of existing agent frameworks, showing how Proto is a good candidate for the agent community's first viable agent framework for societies of agents.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127902056","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Agent-oriented programming languages used in practice do not have good type systems. It is generally accepted in the programming languages community that types help developers to write correct programs. We present an agent-oriented programming language that uses algebraic data types for dynamically checking beliefs and messages.
{"title":"AF-Raf: an agent-oriented programming language with algebraic data types","authors":"C. Grigore, Rem W. Collier","doi":"10.1145/2095050.2095081","DOIUrl":"https://doi.org/10.1145/2095050.2095081","url":null,"abstract":"Agent-oriented programming languages used in practice do not have good type systems. It is generally accepted in the programming languages community that types help developers to write correct programs. We present an agent-oriented programming language that uses algebraic data types for dynamically checking beliefs and messages.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122403495","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The extra abstraction layer posed by the virtual machine, the JIT compilation cycles and the asynchronous garbage collection are the main reasons that make the benchmarking of Java code a delicate task. The primary weapon in battling these is replication: "billions and billions of runs", is phrase sometimes used by practitioners. This paper describes a case study, which consumed hundreds of hours of CPU time, and tries to characterize the inconsistencies in the results we encountered.
{"title":"A microbenchmark case study and lessons learned","authors":"J. Gil, K. Lenz, Yuval Shimron","doi":"10.1145/2095050.2095100","DOIUrl":"https://doi.org/10.1145/2095050.2095100","url":null,"abstract":"The extra abstraction layer posed by the virtual machine, the JIT compilation cycles and the asynchronous garbage collection are the main reasons that make the benchmarking of Java code a delicate task. The primary weapon in battling these is replication: \"billions and billions of runs\", is phrase sometimes used by practitioners. This paper describes a case study, which consumed hundreds of hours of CPU time, and tries to characterize the inconsistencies in the results we encountered.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":"282 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122203761","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Leandro Collares, Chris Matthews, Justin Cappos, Y. Coady, R. McGeer
Most home users are not able to troubleshoot advanced network issues themselves. Hours on the phone with an ISP's customer representative is a common way to solve this problem. With the advent of mobile devices with both Wi-Fi and cellular radios, troubleshooters at the ISP have a new back-door into a malfunctioning residential network. However, placing full trust in an ISP is a poor choice for a home user. In this paper we present Extra Technician (ET), a system designed to provide ISPs and others with an environment to troubleshoot home networking in a remote, safe and flexible manner.
{"title":"Et (smart) phone home!","authors":"Leandro Collares, Chris Matthews, Justin Cappos, Y. Coady, R. McGeer","doi":"10.1145/2095050.2095098","DOIUrl":"https://doi.org/10.1145/2095050.2095098","url":null,"abstract":"Most home users are not able to troubleshoot advanced network issues themselves. Hours on the phone with an ISP's customer representative is a common way to solve this problem. With the advent of mobile devices with both Wi-Fi and cellular radios, troubleshooters at the ISP have a new back-door into a malfunctioning residential network. However, placing full trust in an ISP is a poor choice for a home user. In this paper we present Extra Technician (ET), a system designed to provide ISPs and others with an environment to troubleshoot home networking in a remote, safe and flexible manner.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114339550","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Reconfigurable embedded hardware is a staple of many applications in defense technology and applied engineering. The integration of various embedded hardware "cores" (i.e., the computing units) is complicated by the unintended complexities inherent in the consistent and correct construction of communication pathways - specified using VHDL. This paper presents a domain-specific modeling approach to reducing this complexity. The results include demonstration of the tool, where generated VHDL code with complex data and processing requirements is simulated.
{"title":"autoVHDL: a domain-specific modeling language for the auto-generation of VHDL core wrappers","authors":"E. Jones, J. Sprinkle","doi":"10.1145/2095050.2095063","DOIUrl":"https://doi.org/10.1145/2095050.2095063","url":null,"abstract":"Reconfigurable embedded hardware is a staple of many applications in defense technology and applied engineering. The integration of various embedded hardware \"cores\" (i.e., the computing units) is complicated by the unintended complexities inherent in the consistent and correct construction of communication pathways - specified using VHDL. This paper presents a domain-specific modeling approach to reducing this complexity. The results include demonstration of the tool, where generated VHDL code with complex data and processing requirements is simulated.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130223629","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}