Programming languages have a dual role in the construction of software. The language is both our substrate (the stuff we make software from), and our tool (what we use to construct software). Program transformation (PT) deals with the analysis, manipulation and generation of software. Therefore a close relationship exists between program transformation and programming languages, to the point where the PT field has produced many domain-specific languages for manipulating programs. In this article, I will show you some interesting aspects from one of these languages : Stratego.
{"title":"Stratego: a programming language for program manipulation","authors":"K. T. Kalleberg","doi":"10.1145/1144366.1144370","DOIUrl":"https://doi.org/10.1145/1144366.1144370","url":null,"abstract":"Programming languages have a dual role in the construction of software. The language is both our substrate (the stuff we make software from), and our tool (what we use to construct software). Program transformation (PT) deals with the analysis, manipulation and generation of software. Therefore a close relationship exists between program transformation and programming languages, to the point where the PT field has produced many domain-specific languages for manipulating programs. In this article, I will show you some interesting aspects from one of these languages : Stratego.","PeriodicalId":429016,"journal":{"name":"ACM Crossroads","volume":"61 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126698530","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}
Groovy is "an agile dynamic language for the Java 2 Platform" [1] that attempts to combine the convenience of scripting with the functionality of Java. Groovy has "many of the features that people like so much in languages like Python, Ruby and Smalltalk, making them available to Java developers using a Java-like syntax" [1]. One reason for Java's popularity as a programming language is the Application Programmer Interfaces (APIs) [11]. Each API is a set of related classes that are useful to programmers in Java, similar in concept to the C++ Standard Template Library (STL). The Java APIs are available to Groovy programmers with simplified script-like syntax.
{"title":"A crash overview of groovy","authors":"K. Henry","doi":"10.1145/1144366.1144371","DOIUrl":"https://doi.org/10.1145/1144366.1144371","url":null,"abstract":"Groovy is \"an agile dynamic language for the Java 2 Platform\" [1] that attempts to combine the convenience of scripting with the functionality of Java. Groovy has \"many of the features that people like so much in languages like Python, Ruby and Smalltalk, making them available to Java developers using a Java-like syntax\" [1]. One reason for Java's popularity as a programming language is the Application Programmer Interfaces (APIs) [11]. Each API is a set of related classes that are useful to programmers in Java, similar in concept to the C++ Standard Template Library (STL). The Java APIs are available to Groovy programmers with simplified script-like syntax.","PeriodicalId":429016,"journal":{"name":"ACM Crossroads","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123269633","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}
Program transformation techniques have reached a maturity level that allows processing high-level language sources in new ways. Not only do they revolutionize the implementation of compilers and interpreters, but with modularity as a design philosophy, they also permit the seamless extension of the syntax and semantics of existing programming languages. The C-Transformers project provides a transformation environment for C, a language that proves to be hard to transform. We demonstrate the effectiveness of C-Transformers by extending C’s instructions and control flow to support Design by Contract. C-Transformers is developed by members of the LRDE: EPITA undergraduate students.
{"title":"C-Transformers: a framework to write C program transformations","authors":"Alexandre Borghi, Valentin David, A. Demaille","doi":"10.1145/1144366.1144369","DOIUrl":"https://doi.org/10.1145/1144366.1144369","url":null,"abstract":"Program transformation techniques have reached a maturity level that allows processing high-level language sources in new ways. Not only do they revolutionize the implementation of compilers and interpreters, but with modularity as a design philosophy, they also permit the seamless extension of the syntax and semantics of existing programming languages. The C-Transformers project provides a transformation environment for C, a language that proves to be hard to transform. We demonstrate the effectiveness of C-Transformers by extending C’s instructions and control flow to support Design by Contract. C-Transformers is developed by members of the LRDE: EPITA undergraduate students.","PeriodicalId":429016,"journal":{"name":"ACM Crossroads","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132383608","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}
For the visualization of proteins, interaction with the displayed model is indispensible in order to understand the three-dimensional protein structure. Accordingly, an efficient design of the user interface including display and input devices is crucial. A large number of input devices, some in 2D, some in 3D, and a large variety of display devices exist, which are commonly used for exploring large-scale 3D data structures. Unfortunately, not all combinations of input and display devices work together in a suitable and useful manner, either because they are not capable of 3D input or because, for instance, they need a hard table surface to work properly, making their utility for 3D navigation impractical. For example, in a large-screen, stereoscopic environment, where user immersion and freedom of motion in the display space are required, such a device would bind the user too much to a fixed location.
{"title":"Comparison of input devices and displays for protein visualization","authors":"E. Moritz, T. Wischgoll, Jörg Meyer","doi":"10.1145/1144375.1144380","DOIUrl":"https://doi.org/10.1145/1144375.1144380","url":null,"abstract":"For the visualization of proteins, interaction with the displayed model is indispensible in order to understand the three-dimensional protein structure. Accordingly, an efficient design of the user interface including display and input devices is crucial. A large number of input devices, some in 2D, some in 3D, and a large variety of display devices exist, which are commonly used for exploring large-scale 3D data structures. Unfortunately, not all combinations of input and display devices work together in a suitable and useful manner, either because they are not capable of 3D input or because, for instance, they need a hard table surface to work properly, making their utility for 3D navigation impractical. For example, in a large-screen, stereoscopic environment, where user immersion and freedom of motion in the display space are required, such a device would bind the user too much to a fixed location.","PeriodicalId":429016,"journal":{"name":"ACM Crossroads","volume":"61 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130116331","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}
Kayre Hylton, M. Rosson, John Millar Carroll, C. Ganoe
The issue of maintaining awareness in a collaborative environment has often been addressed, and several different styles of notification systems have been developed to accomplish this maintenance. Much emphasis has been put on interface design. McCrickard et al. [7] describe notification system interfaces based on their balance of interruption to the primary task, reaction to the notification, and comprehension of information received. Should the interface always be present like Microsoft ́s sideshow? [2] Should it be transparent? [6] Are interruptions helpful or harmful? When and how should interruptions occur, and how should a user be required to respond to them? [4, 8].
{"title":"When news is more than what makes headlines","authors":"Kayre Hylton, M. Rosson, John Millar Carroll, C. Ganoe","doi":"10.1145/1144375.1144379","DOIUrl":"https://doi.org/10.1145/1144375.1144379","url":null,"abstract":"The issue of maintaining awareness in a collaborative environment has often been addressed, and several different styles of notification systems have been developed to accomplish this maintenance. Much emphasis has been put on interface design. McCrickard et al. [7] describe notification system interfaces based on their balance of interruption to the primary task, reaction to the notification, and comprehension of information received. Should the interface always be present like Microsoft ́s sideshow? [2] Should it be transparent? [6] Are interruptions helpful or harmful? When and how should interruptions occur, and how should a user be required to respond to them? [4, 8].","PeriodicalId":429016,"journal":{"name":"ACM Crossroads","volume":"14 2","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132071382","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}
This work is a part of an ongoing project that focuses on potential applications of HCI in aiding children with mental disorders. In this work we look at autism and bipolar disorder in particular. We believe HCI is promising here because it provides the possibility of capturing, analyzing, and influencing human perception and behavior. Treating mental disorders, particularly those discussed in this article, requires frequent individual sessions over long durations. An HCI assisted treatment allows for such personalized therapy and it can be expanded to allow for treatment in households that do not have ready access to such therapy. Children with autism are socially impaired and usually do not attend to the people around them. Recently, a new trend for utilizing HCI technology in the treatment of autism has emerged. So far it has mainly focused on diagnosing of autism [20] or practicing social skills like imitation [19]. However, we choose a different route that up to our knowledge has not yet been explored. We are interested in developing a mediating tool through which the world would seem more sensible to those with difficulty perceiving social cues. We suggest attention control for this purpose by eye tracking and augmented/manipulated reality techniques. Bipolar children suffer from abnormally strong mood swings. There has been no research reported in the literature for exploiting HCI in the treatment of bipolar disorder. We think there is much to be gain from HCI in this area as it provides tools for estimating one’s emotional state. These tools can be used for monitoring mood. Moreover, affective computing, an area of HCI which explores the influence of emotional agents on people, shows potential for influencing the moods of patients [16].
{"title":"HCI Applications for aiding children with mental disorders","authors":"H. Mobahi, Karrie Karahalios","doi":"10.1145/1144375.1144378","DOIUrl":"https://doi.org/10.1145/1144375.1144378","url":null,"abstract":"This work is a part of an ongoing project that focuses on potential applications of HCI in aiding children with mental disorders. In this work we look at autism and bipolar disorder in particular. We believe HCI is promising here because it provides the possibility of capturing, analyzing, and influencing human perception and behavior. Treating mental disorders, particularly those discussed in this article, requires frequent individual sessions over long durations. An HCI assisted treatment allows for such personalized therapy and it can be expanded to allow for treatment in households that do not have ready access to such therapy. Children with autism are socially impaired and usually do not attend to the people around them. Recently, a new trend for utilizing HCI technology in the treatment of autism has emerged. So far it has mainly focused on diagnosing of autism [20] or practicing social skills like imitation [19]. However, we choose a different route that up to our knowledge has not yet been explored. We are interested in developing a mediating tool through which the world would seem more sensible to those with difficulty perceiving social cues. We suggest attention control for this purpose by eye tracking and augmented/manipulated reality techniques. Bipolar children suffer from abnormally strong mood swings. There has been no research reported in the literature for exploiting HCI in the treatment of bipolar disorder. We think there is much to be gain from HCI in this area as it provides tools for estimating one’s emotional state. These tools can be used for monitoring mood. Moreover, affective computing, an area of HCI which explores the influence of emotional agents on people, shows potential for influencing the moods of patients [16].","PeriodicalId":429016,"journal":{"name":"ACM Crossroads","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116543607","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}
Adopted by the ACM Council in 1992, the ACM Code of Ethics and Professional Conduct focuses on issues involving the Digital Divide that could prevent certain categories of people — those from low income households, senior citizens, single-parent children, the undereducated, minorities, and residents of rural areas — from receiving adequate access to the wide variety of resources offered by computer technology. This Code of Ethics positions the use of computers as a fundamental ethical consideration: "In a fair society, all individuals would have equal opportunity to participate in, or benefit from, the use of computer resources regardless of race, sex, religion, age, disability, national origin, or other similar factors." This article summarizes the digital divide in its various forms, and analyzes reasons for the growing inequality in people's access to Internet services. It also describes how society can bridge the Digital Divide: the serious social gap between information "haves" and "have-nots."
{"title":"Challenges in HCI: digital divide","authors":"Kibum Kim","doi":"10.1145/1144375.1144377","DOIUrl":"https://doi.org/10.1145/1144375.1144377","url":null,"abstract":"Adopted by the ACM Council in 1992, the ACM Code of Ethics and Professional Conduct focuses on issues involving the Digital Divide that could prevent certain categories of people — those from low income households, senior citizens, single-parent children, the undereducated, minorities, and residents of rural areas — from receiving adequate access to the wide variety of resources offered by computer technology. This Code of Ethics positions the use of computers as a fundamental ethical consideration: \"In a fair society, all individuals would have equal opportunity to participate in, or benefit from, the use of computer resources regardless of race, sex, religion, age, disability, national origin, or other similar factors.\" This article summarizes the digital divide in its various forms, and analyzes reasons for the growing inequality in people's access to Internet services. It also describes how society can bridge the Digital Divide: the serious social gap between information \"haves\" and \"have-nots.\"","PeriodicalId":429016,"journal":{"name":"ACM Crossroads","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121691051","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}
Computer networks have been experiencing dramatic changes in their nature over the past few years. Traditionally, network services have been provided through simple interactions between a service provider and service consumers (e.g., web server and clients). For example, CNN's web server provides its clients with news through HTTP (Hyper Text Transfer Protocol). Recent distributed networks, on the other hand, provide network services in a more complex manner involving a greater degree of interaction among service components [1]. Examples of this include mobile agent services [2, 6, 8] where a number of virtual software entities, called agents, migrate over networks to interact with each other and provide network services.
{"title":"An interaction model for mobile agent services using social networks","authors":"Vishakh, Nicholas Urrea, T. Nakano, T. Suda","doi":"10.1145/1144389.1144392","DOIUrl":"https://doi.org/10.1145/1144389.1144392","url":null,"abstract":"Computer networks have been experiencing dramatic changes in their nature over the past few years. Traditionally, network services have been provided through simple interactions between a service provider and service consumers (e.g., web server and clients). For example, CNN's web server provides its clients with news through HTTP (Hyper Text Transfer Protocol). Recent distributed networks, on the other hand, provide network services in a more complex manner involving a greater degree of interaction among service components [1]. Examples of this include mobile agent services [2, 6, 8] where a number of virtual software entities, called agents, migrate over networks to interact with each other and provide network services.","PeriodicalId":429016,"journal":{"name":"ACM Crossroads","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132002853","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}
One very popular mobile service available throughmost carriers, is Yahoo's 8243 service [8]. This service allows you tocheck your Yahoo! Mail, use Yahoo! Instant Messenger, or check scores,news, and so on. When you access this type of service, you are using both thecarrier's network and the service provider's network, in this caseYahoo!. There are also many carrier-dependent services, in which caseyou make use of the carrier's network alone.
{"title":"Experimental mobile gateways","authors":"P. Pillai","doi":"10.1145/1144389.1144395","DOIUrl":"https://doi.org/10.1145/1144389.1144395","url":null,"abstract":"One very popular mobile service available throughmost carriers, is Yahoo's 8243 service [8]. This service allows you tocheck your Yahoo! Mail, use Yahoo! Instant Messenger, or check scores,news, and so on. When you access this type of service, you are using both thecarrier's network and the service provider's network, in this caseYahoo!. There are also many carrier-dependent services, in which caseyou make use of the carrier's network alone.","PeriodicalId":429016,"journal":{"name":"ACM Crossroads","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121729875","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}
Mobile and peer-to-peer network services are rapidly growing to include a large number of users that frequently join and leave such networks [4]. These networks are often highly heterogeneous and that wide varieties of devices are networked with varying connectivity and availability. As these underlying networks increase in scale, dynamics, and heterogeneity, network services must address the issues of scalability (the ability to accommodate enormous numbers of users in large-scale networks), adaptability (the ability to handle the dynamics and heterogeneity of network conditions), and availability (the ability to provide fault tolerant network services).
{"title":"Learning from nature: network architecture inspired by biology","authors":"A. Nguyen, T. Nakano, T. Suda","doi":"10.1145/1144389.1144391","DOIUrl":"https://doi.org/10.1145/1144389.1144391","url":null,"abstract":"Mobile and peer-to-peer network services are rapidly growing to include a large number of users that frequently join and leave such networks [4]. These networks are often highly heterogeneous and that wide varieties of devices are networked with varying connectivity and availability. As these underlying networks increase in scale, dynamics, and heterogeneity, network services must address the issues of scalability (the ability to accommodate enormous numbers of users in large-scale networks), adaptability (the ability to handle the dynamics and heterogeneity of network conditions), and availability (the ability to provide fault tolerant network services).","PeriodicalId":429016,"journal":{"name":"ACM Crossroads","volume":"111 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131831493","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}