178 research outputs found

    The C++0x "Concepts" Effort

    Full text link
    C++0x is the working title for the revision of the ISO standard of the C++ programming language that was originally planned for release in 2009 but that was delayed to 2011. The largest language extension in C++0x was "concepts", that is, a collection of features for constraining template parameters. In September of 2008, the C++ standards committee voted the concepts extension into C++0x, but then in July of 2009, the committee voted the concepts extension back out of C++0x. This article is my account of the technical challenges and debates within the "concepts" effort in the years 2003 to 2009. To provide some background, the article also describes the design space for constrained parametric polymorphism, or what is colloquially know as constrained generics. While this article is meant to be generally accessible, the writing is aimed toward readers with background in functional programming and programming language theory. This article grew out of a lecture at the Spring School on Generic and Indexed Programming at the University of Oxford, March 2010

    Subclassing errors, OOP, and practically checkable rules to prevent them

    Get PDF
    This paper considers an example of Object-Oriented Programming (OOP) leading to subtle errors that break separation of interface and implementations. A comprehensive principle that guards against such errors is undecidable. The paper introduces a set of mechanically verifiable rules that prevent these insidious problems. Although the rules seem restrictive, they are powerful and expressive, as we show on several familiar examples. The rules contradict both the spirit and the letter of the OOP. The present examples as well as available theoretical and experimental results pose a question if OOP is conducive to software development at all.Comment: 10 pages, 1 LaTeX file; accompanying C++ and Haskell code and compilation instruction

    Transportable Applications Environment (TAE) Plus: A NASA tool for building and managing graphical user interfaces

    Get PDF
    The Transportable Applications Environment (TAE) Plus, developed at NASA's Goddard Space Flight Center, is an advanced portable user interface development which simplifies the process of creating and managing complex application graphical user interfaces (GUI's). TAE Plus supports the rapid prototyping of GUI's and allows applications to be ported easily between different platforms. This paper will discuss the capabilities of the TAE Plus tool, and how it makes the job of designing and developing GUI's easier for application developers. TAE Plus is being applied to many types of applications, and this paper discusses how it has been used both within and outside NASA

    Transportable Applications Environment (TAE) Plus: A NASA tool for building and managing graphical user interfaces

    Get PDF
    The Transportable Applications Environment (TAE) Plus, developed at GSFC, is an advanced portable user interface development environment which simplifies the process of creating and managing complex application graphical user interfaces (GUI's), supports prototyping, allows applications to be ported easily between different platforms and encourages appropriate levels of user interface consistency between applications. The following topics are discussed: the capabilities of the TAE Plus tool; how the implementation has utilized state-of-the-art technologies within graphic workstations; and how it has been used both within and outside of NASA

    Interaction Models for 2D Finite Element Modelling on Touch Devices

    Get PDF
    The computational power of hand held devices have increased significantly during the last years. Today it is possible to run advanced finite element simulations on these devices. This opens up new possibilities for creating software for the early design stage and for educational purposes. Touch devices such as the iPad has become increasingly popular, and the number of users are growing every day. The multi-touch interface of the iPad has changed the interaction between computer and human. Some of the precision of using a mouse is lost, but is replaced by a more direct interaction with objects on the screen. The direct manipulation is what makes the multi-touch interface well suited for structural mechanics problems. The ability to give the user a feeling of being able to directly manipulate a model. The aim of this thesis is to develop an application to investigate how to take advantage of the new possibilities that the multi-touch interfaces creates in the field of structural mechanics. There are today on the market some available software tools for the early stage design process, but they are mostly PC software. To investigate how the multi-touch interface can be used for this type of applications an iPad application has been developed. The iPad application has been developed using Objective C and C++, where C++ is used for the FE computations for performance reasons. The developed application is a finite element application using beam elements. A geometry can quickly be modeled using developed direct manipulation methods. The application does not have the conventional user interface, instead the result is continuously recomputed once the model is stable. Which is determined using an eigenvalue analysis. The developed application is avalible in App Store under the name "Sketch a Frame". The created application uses the advantages of the multi touch interface. Creating new methods for the modeling process which has enabled the user to get a feeling of direct manipulation

    The Love/Hate Relationship with the C Preprocessor: An Interview Study

    Get PDF
    The C preprocessor has received strong criticism in academia, among others regarding separation of concerns, error proneness, and code obfuscation, but is widely used in practice. Many (mostly academic) alternatives to the preprocessor exist, but have not been adopted in practice. Since developers continue to use the preprocessor despite all criticism and research, we ask how practitioners perceive the C preprocessor. We performed interviews with 40 developers, used grounded theory to analyze the data, and cross-validated the results with data from a survey among 202 developers, repository mining, and results from previous studies. In particular, we investigated four research questions related to why the preprocessor is still widely used in practice, common problems, alternatives, and the impact of undisciplined annotations. Our study shows that developers are aware of the criticism the C preprocessor receives, but use it nonetheless, mainly for portability and variability. Many developers indicate that they regularly face preprocessor-related problems and preprocessor-related bugs. The majority of our interviewees do not see any current C-native technologies that can entirely replace the C preprocessor. However, developers tend to mitigate problems with guidelines, even though those guidelines are not enforced consistently. We report the key insights gained from our study and discuss implications for practitioners and researchers on how to better use the C preprocessor to minimize its negative impact

    Challenges and Solutions from an Embedded Programming Bootcamp

    Get PDF

    Pitfalls and guide lines in the transition to object oriented software design methodologies

    Get PDF
    A research report submitted to the Faculty of Engineering, University of the Witwatersrand, Johannesburg, in partial fulfilment of the requirements for the degree of Master of Science in Engineering.Due to the dynamic nature of the software engineering industry there is a constant move towards new strategies for solving design problems. More specifically there is a move towards Object Oriented (OO) methodologies, presumably because of the various advantages offered in terms of maintainability, and reuse of code produced this way. As with various other aspects of the software industry there are however also problems encountered in this transition and lessons to be learned from the experience of companies who have already performed this change. This research report investigates possible guidelines for companies who are currently contemplating a change to the OO software design methodologies, by covering a collection of issues one should know about prior to this change. It also summarises the problems faced in the transition so far, the reasons for these problems and suggests possible solutions. Lastly it also investigates new trends in the OO arena. The emphasis is on South African companies and projects. The results obtained are compared with results obtained overseas to find out what the differences and similarities are. Areas of concern are also identified, where theoreticians' views have been ignored, and both South African and overeeas companies have not implemented any of the suggestions made.Andrew Chakane 201
    • …
    corecore