object code
Martin H. Weik · 2000
Cited by 0
Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.
About 10,000 papers for “Object code”
Martin H. Weik · 2000
Cited by 0
Mohamed S. Abdel Wahab · Warwick Research Archive Portal (University of Warwick) · 1998
Object code is a program of a processor language and can be directly executed on a machine. Program verification constructs a formal proof that a program correctly implements its specification. Verifying object code therefore ensures that the program which is to be executed on a machine is correct. However, the nature of processor languages makes it difficult to specify and reason about object code programs in a formal system of logic. Furthermore, a proof of the correctness of an object code program will often be too large to construct manually because of the size of object code programs. The presence of pointers and computed jumps in object code programs constrains the use of automated tools to simplify object code verification. \n \nThis thesis develops an abstract language which is expressive enough to describe any sequential object code program. The abstract language supports the definition of program logics in which to specify and verify object code programs. This allows the object code programs of any processor language to be verified in a single system of logic. The abstract language is expressive enough that a single command is enough to describe the behaviour of any processor instruction. An object code program can therefore be translated to the abstract language by replacing each instruction with the equivalent command of the abstract language. This ensures that the use of the abstract language does not increase the difficulty of verifying an object code program. \n \nThe verification of an object code program can be simplified by constructing an abstraction of the program and showing that the abstraction correctly implements the program specification. Methods for abstracting programs of the abstract language are developed which consider only the text of a program. These methods are based on describing a finite sequence of commands as a single, equivalent, command of the abstract language. This is used to define transformations which abstract a program by replacing groups of program commands with a single command. The abstraction of a program formed in this way can be verified in the same system of logic as the original program. Because the transformations consider only the program text, they are suitable for efficient mechanisation in an automated proof tool. By reducing the number of commands which must be considered, these methods can reduce the manual work needed to verify a program. \n \nThe use of an abstract language allows object code programs to be specified and verified in a system of logic while the use of abstraction to simplify programs makes verification practical. As examples, object code programs for two different processors are modelled, abstracted and verified in terms of the abstract language. Features of processor languages and of object code programs which affect verification and abstraction are also summarised.
Cited by 1Open access
Marco Benini · Lecture notes in computer science · 2000
Cited by 1
SpringerReference · 2011
Cited by 0
Matthew Wahab Thesis, Matthew Wahab · 2007
Object code is a program of a processor language and can be directly executed on a machine. Program verification constructs a formal proof that a program correctly implements its specification. Verifying object code therefore ensures that the program which is to be executed on a machine is correct. However, the nature of processor languages makes it difficult to specify and reason about object code programs in a formal system of logic. Furthermore, a proof of the correctness of an object code program will often be too large to construct manually because of the size of object code programs. The presence of pointers and computed jumps in object code programs constrains the use of automated tools to simplify object code verification. This thesis develops an abstract language which is expressive enough to describe any sequential object code program. The abstract language supports the definition of program logics in which to specify and verify object code programs. This allows the object c...
Cited by 0
Jack W. Davidson, Christopher W. Fraser · ACM Transactions on Programming Languages and Systems · 1984
This paper shows how thorough object code optimization has simplified a compiler and made it easy to retarget. The code generator forgoes case analysis and emits naive code that is improved by a retargetable object code optimizer. With this technique, cross-compilers have been built for seven machines, some in as few as three person days. These cross-compilers emit code comparable to hostspecific compilers.
Cited by 128Open access
Natasha Shaukat, S. Shuja, Sudarshan K. Srinivasan et al. · Scientific Programming · 2020
One of the major challenges in the formal verification of embedded system software is the complexity and substantially large size of the implementation. The problem becomes crucial when the embedded system is a complex medical device that is executing convoluted algorithms. In refinement-based verification, both specification and implementation are expressed as transition systems. Each behavior of the implementation transition system is matched to the specification transition system with the help of a refinement map. The refinement map can only project those values from the implementation which are responsible for labeling the current state of the system. When the refinement map is applied at the object code level, numerous instructions map to a single state in the specification transition system called stuttering instructions. We use the concept of Static Stuttering Abstraction (SSA) that filters the common multiple segments of stuttering instructions and replaces each segment with a merger. SSA algorithm reduces the implementation state space in embedded software, subsequently decreasing the efforts involved in manual verification with WEB refinement. The algorithm is formally proven for correctness. SSA is implemented on the pacemaker object code to evaluate the effectiveness of abstracted code in verification process. The results helped to establish the fact that, despite code size reduction, the bugs and errors can still be found. We implemented the SSA technique on two different platforms and it has been proven to be consistent in decreasing the code size significantly and hence the complexity of the implementation transition system. The results illustrate that there is considerable reduction in time and effort required for the verification of a complex software control, i.e., pacemaker when statically stuttering abstracted code is employed.
Cited by 0Open access
Zhao, Bing · Zenodo (CERN European Organization for Nuclear Research) · 2024
Cited by 0Open access
Richard Fanta, Václav Rajlich · 2002
In this paper, we describe the reengineering of a deteriorated object-oriented industrial program written in C++. The main problem of the program was misplaced code, most often functions that were members of the wrong class. In order to deal with this problem, we designed and implemented several restructuring tools and used them in specific reengineering scenarios. We also discuss how this set of tools could be enhanced in the future, and the importance of restructuring for object-oriented software maintenance.
Cited by 53
Jan Tobias Mühlberg, Gerald Lüttgen · International Journal on Software Tools for Technology Transfer · 2012
Cited by 2Open access
Chamberlin, Ellen · ScholarSphere (Penn State Libraries)
This collection has Matlab code that was used in E. Chamberlin's dissertation. This code places rectangular "channel objects" according to different avulsion rules, and builds model "stratigraphy" through channel elements and overbank "floodplain" deposits.
Cited by 0
User Input, Jan Plane, Ben Bederson et al. · 2011
� Popular modern language � Used in web, business, telecom applications � Developed in 1990s, incorporates many features from earlier languages � Object-orientation
Cited by 0
Sophia Robert · OSF Preprints (OSF Preprints) · 2023
Code to generate field-light displays from regular videos in .mp4 format
Cited by 0
Ligia Nistor, Jonathan Aldrich · Figshare · 2018
The modular verification of object-oriented code is made dif- ficult by the presence of aliasing. If there are multiple clients depending on the properties of an object, one client may break the property that others depend on. Knowledge of both aliasing and predicates allows us to verify whether clients and implementations are compliant with specifications. We have developed a modular verification approach, by introducing the novel abstraction object propositions, that combines predicates and information about object aliasing. In our methodology, even if shared data is modified, we know that an object invariant specified by a client holds. This allows two references pointing to the same object to have a consistent view of the object. Our object invariant is different than a class invariant such as the ones in ESC/Java, as in our system two objects of the same class are allowed to have different invariants. Although there are separation logic approaches that can be used to specify similar programs, the specifications are complex and not modular. In separation logic, the specifi- cation of a method must describe all the heap cells that the method touches. The exact data shared between objects will then be exposed. With the help of access permissions, we are able to hide the aliasing information when possible. This is very important for software evolution because local changes to the code in a system should not modify the specification of other parts of the system
Cited by 5Open access
Les Hatton · 2008
Much defect data is expressed in terms of defect density (defects per 1000 lines of code) however in many proprietary systems such as Windows and also in embedded control systems, only the number of bytes of object code is normally known making it difficult to compare such systems in terms of standard measures like asymptotic defect density. This paper describes simple methods of calculating equivalent lines of code to allow such comparisons to be made and quotes estimated lines of code for various versions of Windows. The calibrations have been done for C which still dominates operating system and embedded control systems implementations. $Date: 2005/05/25 16:12:07 $
Cited by 0
Manuel Benitez · Libra · 1989
_A global object code optimizer performs optimizations at the machine level. It uses infonnation at the procedure level as well as knowledge about the specific capabilities of the target machine to produce high quality code. It takes many months, even years, of development effort to produce these optimizers. Performing optimizations at the machine level has traditionally been accomplished by machine-dependent algorithms. Retargeting to a new machine requires large portions of the optimizer to be re - wrltten to handle the idiosyncrasies of the new architecture. This thesis presents an optimizing compiler that performs global optimizations using a machine-independent notation to describe machine-dependent instructions at the machine level. The machine-independent notation that we call Register Transfer Lists is presented and its ability to describe machine-dependent instructions is discussed. Machine - independent algorithms that manipulate the Register Transfer Lists to perform common code - improvement transformations are explained. Measurements of the effectiveness of the optimizing compiler on three different machines are given. The effectiveness of the some of the global optimizations is discussed. The effort required to retarget the optimizing compiler to new machines is estimated to be in the order of weeks. Note: Abstract extracted from PDF file via OCR
Cited by 0Open access
Д. Н. Гаврилина, Andrei Mantsivoda · The Bulletin of Irkutsk State University Series Mathematics · 2022
The paper considers low-code application development technology based on the idea of object-oriented programming (OOP) visualization. As the core, we use a version of OOP developed by us, which supports managing object models as microservices. The paper considers visual tools for managing object models as the basis for low-code development. An approach to visualization based on the so-called object spreadsheets is proposed. The spreadsheet methodology for object structure management, its implementation within the Ontobox platform, as well as the results of testing this interface to object models are discussed
Cited by 1Open access
Lorenzo Bettini, Viviana Bono, Betti Venneri · Lecture notes in computer science · 2002
Cited by 19Open access
Архипов Иван Сергеевич, Arhipov Ivan Sergeevic · Research Repository Saint Petersburg State University (Saint Petersburg State University) · 2021
Данная работа посвящена реализации оптимизаций в генераторе кодов MIPS. Данная работа является частью проекта RuC.
Cited by 0Open access
Derek Hoiem · 2014
Object detection is an important part of computer vision. Typically, the task is defined as providing the bounding boxes that correspond to each instance of an object category, such as “person” or “car” in a collection of images. Hoiem et al. [3] introduced a set of tools to interpret the performance of such object detection systems. We have updated those tools. In this document, we provide a brief description of the tools with some added commentary on their use. Consult the text file included in the code package for details on usage. When using the error analysis tool, please cite the original Hoiem et al. ECCV 2012 paper.
Cited by 0