• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 11
  • 5
  • 3
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 25
  • 13
  • 6
  • 5
  • 5
  • 5
  • 4
  • 4
  • 4
  • 4
  • 4
  • 4
  • 4
  • 4
  • 3
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Zpětný překladač jazyka Java / Java decompiler

Žamberský, Zdeněk January 2015 (has links)
The goal was to create decompiler for Java programing language. Decompiler should reconstruct original Java source code from class files, representing its compiled form. First part of thesis focuses on Java langage, its compilation and structure of class file. Then Java Virtual Machine and its instruction set is discussed. After that thesis focuses on decompilation and algoritms designed and used for decompiler realization. Examples of decompiled code are presented.
2

Java bytecode to Pilar translator

Ochani, Vidit January 1900 (has links)
Master of Science / Department of Computing and Information Sciences / Robby / Software technology is the pivot around which all modern industries revolve. It is not surprising that industries of diverse nature such as finance, business, engineering, medicine, defense, etc. have assimilated sophisticated software in every step of functioning. Subsequently, with larger reach of application, software technology has evolved intricately; thereby thwarting the desirable testing of software. Companies are investing millions of dollars in manual and automated testing, however, software bugs continue to persist. It is well known that even a trivial bug can ultimately cost the company millions of dollars. Therefore, we need smarter tools to help eliminate bugs. Sireum is a research project to develop a software analysis platform that incorporates various tools and techniques. Symbolic execution, model checking, deductive reasoning and control flow graph are few examples of the aforementioned techniques. The Sireum platform is based on previous projects like the Indus static analysis framework, the Bogor model checking framework and the Bandera Java model checker. It uses the Pilar language as intermediate representation. Any language which can be translated to Pilar can be analyzed by Sireum. There exists translator for Spark - a verifiable subset of Ada for building high-integrity systems. In this report, we are presenting one such translator for Java Bytecode - A frontend which can generate Pilar from Java intermediate representation. The translator emulates the working of the Java Virtual Machine(JVM), by simulating a stack-based virtual machine. It will help us analyse JVM based softwares, such as, mobile applications for Android. We also evaluate and report statistics on the efficiency and speed of translation.
3

JavaFlow : a Java DataFlow Machine

Ascott, Robert John 10 February 2015 (has links)
The JavaFlow, a Java DataFlow Machine is a machine design concept implementing a Java Virtual Machine aimed at addressing technology roadmap issues along with the ability to effectively utilize and manage very large numbers of processing cores. Specific design challenges addressed include: design complexity through a common set of repeatable structures; low power by featuring unused circuits and ability to power off sections of the chip; clock propagation and wire limits by using locality to bring data to processing elements and a Globally Asynchronous Locally Synchronous (GALS) design; and reliability by allowing portions of the design to be bypassed in case of failures. A Data Flow Architecture is used with multiple heterogeneous networks to connect processing elements capable of executing a single Java ByteCode instruction. Whole methods are cached in this DataFlow fabric, and the networks plus distributed intelligence are used for their management and execution. A mesh network is used for the DataFlow transfers; two ordered networks are used for management and control flow mapping; and multiple high speed rings are used to access the storage subsystem and a controlling General Purpose Processor (GPP). Analysis of benchmarks demonstrates the potential for this design concept. The design process was initiated by analyzing SPEC JVM benchmarks which identified a small number methods contributing to a significant percentage of the overall ByteCode operations. Additional analysis established static instruction mixes to prioritize the types of processing elements used in the DataFlow Fabric. The overall objective of the machine is to provide multi-threading performance for Java Methods deployed to this DataFlow fabric. With advances in technology it is envisioned that from 1,000 to 10,000 cores/instructions could be deployed and managed using this structure. This size of DataFlow fabric would allow all the key methods from the SPEC benchmarks to be resident. A baseline configuration is defined with a compressed dataflow structure and then compared to multiple configurations of instruction assignments and clock relationships. Using a series of methods from the SPEC benchmark running independently, IPC (Instructions per Cycle) performance of the sparsely populated heterogeneous structure is 40% of the baseline. The average ratio of instructions to required nodes is 3.5. Innovative solutions to the loading and management of Java methods along with the translation from control flow to DataFlow structure are demonstrated. / text
4

Decompilation of WebAssembly using Datalog / Dekompilering av WebAssembly i Datalog

Brandefelt, Love January 2022 (has links)
With 92% of today’s browsers supporting WebAssembly the need for decompilers to discover malicious code is greater than ever. The introduction of the Datalog to C++ compiler Soufflé, in 2016, enables the implementation of effective Datalog-based decompilers. This thesis investigates if a Datalogbased approach to decompilation can be used to implement a WebAssembly decompiler. Such a decompiler is implemented and then evaluated in terms of decompilability, recompilabilty and semantic equivalence using randomly generated programs of various complexity. Each generated program is first decompiled, then recompiled if the decompilation was successful, and finally executed if the recompilation was successful. The results showed that the implementation can decompile all generated programs and that most of the decompiled programs are recompilable. However, only 70% of the lowest complexity programs maintained the output of the original program. As the complexity increased this percentage fell below 20%, a result of more complex programs being more likely to contain code structures that are not handled correctly. If the similarity of the decompiled programs were instead measured by recompiling the decompiled programs to WebAssembly and observing the number of instructions differing from the original WebAssembly binary the percentages were slightly more satisfying with the percentage of instructions differing ranging from 25% for the lowest complexity programs to 65% for the highest complexity programs. While the results are not distinct enough to draw the conclusion that a Datalog-based approach to decompilation is suitable for implementing a WebAssembly decompiler they instigate the need for further research on the topic, e.g. by supporting more WebAssembly instructions as well as supporting WebAssembly binaries compiled from other languages than C. / Idag stödjer 92% av alla webbläsare WebAssembly och behovet av dekompilatorer för att upptäcka skadlig kod är större än någonsin. Datalog-kompilatorn Soufflé som introducerades 2016 gjorde det möjligt att implementera effektiva Datalog-baserade dekompilatorer. Detta arbete undersöker om en Datalogbaserad dekompilator kan användas för att implementera en WebAssemblydekompilator. Detta genomförs genom att en Datalog-baserad WebAssemblydekompilator implementeras och sedan utvärderas i termer av dekompilerbarhet, återkompilerbarhet och semantisk ekvivalens med hjälp av slumpmässigt genererade program av varierande komplexitet. Varje genererat program dekompileras och kompileras sedan igen för att slutligen exekveras. Resultaten visade att dekompilatorn kunde dekompilera alla genererade program och att de flesta av de dekompilerade programmen var omkompilerbara. Däremot gav endast 70% av programmen med lägst komplexitet samma utdata som respektive ursprungsprogram. När komplexiteten ökade sjönk denna procentsats till under 20%, en följd av att program av en högre komplexitet i högre grad innehåller kodstrukturer som hanteras felaktigt. Om likheten mellan de dekompilerade programmen istället mättes genom att kompilera om de dekompilerade programmen till WebAssembly och titta på antalet instruktioner som skiljer sig från den ursprungliga WebAssembly-binären var resultaten något mer tillfredsställande med endast 25%’s skillnad för programmen med lägst komplexitet upp till 65%’s skillnad för programmen med högst komplexitet. Trots att resultaten inte är tillräckligt tydliga för att dra slutsatsen att en Datalog-baserad dekompilator är lämplig för att implementera en WebAssembly-dekompilator, tydliggör de behovet av vidare forskning på ämnet, t.ex genom att stödja fler WebAssembly-instruktioner samt genom att stödja WebAssembly-binärer kompilerade från andra språk än C.
5

SHAP — Scalable Multi-Core Java Bytecode Processor

Zabel, Martin, Spallek, Rainer G. 14 November 2012 (has links) (PDF)
Abstract This paper introduces a new embedded Java multi-core architecture which shows a significantly better performance for a large number of cores than the related projects JopCMP and jamuth IP multi-core. The cores gain fast access to the shared heap by a fullduplex bus with pipelined transactions. Each core is equipped with local on-chip memory for the Java operand stack and the method cache to further reduce the memory bandwidth requirements. As opposed to the related projects, synchronization is supported on a per object-basis instead of a single lock. Load balancing is implemented in Java and requires no additional hardware. The multi-port memory manager includes an exact and fully concurrent garbage collector for automatic memory management. The design can be synthesized for a variable number of parallel cores and shows a linear increase in chip-space. Three different benchmarks demonstrate the very good scalability of our architecture. Due to limited chip-space on our evaluation platform, the core count could not be increased further than 8. But, we expect a smooth performance decrease.
6

Otimização bytecode Java na plataforma J2ME

Pinto Camara, Tarcisio January 2004 (has links)
Made available in DSpace on 2014-06-12T15:59:18Z (GMT). No. of bitstreams: 2 arquivo5023_1.pdf: 1253051 bytes, checksum: 0bb4a72739c259711e027e24c5f3659f (MD5) license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5) Previous issue date: 2004 / Conselho Nacional de Desenvolvimento Científico e Tecnológico / Aplicações para os dispositivos móveis, como telefones celulares e pagers, implementadas em J2ME (Java 2 Micro Edition) são desenvolvidas sob severas restrições de tamanho e desempenho do código. A indústria tem adotado ferramentas de otimização, como obfuscators e shrinkers, que aplicam otimizações de programa inteiro (Whole Program Optimizations) considerando que o código gerado não será estendido ou usado por outras aplicações. Infelizmente, os desenvolvedores freqüentemente não conhecem suficientemente nestas ferramentas e continuam sacrificando a qualidade do código na tentativa de otimizar suas aplicações. Este trabalho apresenta um estudo original identificando a efetividade das otimizações mais comuns nos obfuscators. Este estudo mostra também que a otimização de Method Inlining, conhecida pelos benefícios de desempenho, tem sido negligenciada por estas ferramentas por normalmente esperarse que ela tenha efeito negativo sobre o tamanho de código. Assim, este trabalho contribui com uma implementação de method inlining entre classes e fundada no princípio de otimização de programa inteiro, capaz de melhorar tanto o tamanho do código como o desempenho da aplicação, ao remover cerca de 50% dos métodos alcançáveis. Finalmente, na tentativa de ajudar os desenvolvedores a tirar o melhor proveito destas ferramentas, o estudo inclui também um guia de boas práticas de programação considerando as otimizações implementadas pelos obfuscators
7

Statická analýza datových toků pro programy v jazyce Java / Static data flow analysis for Java programs

Mečiar, Martin January 2019 (has links)
This thesis proposes a methodology for an acquisition of dependencies between outputs and inputs in Java programs by using static program analysis on bytecode of Java programs. JaBSSA methodology designed by the author is presented in the thesis. The methodology is based on a construction of context-sensitive call graph of the analyzed program and subsequent construction of directed data flow graph, where nodes containing particular metadata represent inputs and outputs of the analyzed program and edges represent data flows amongst them present in the analyzed program. The program on added CD contains JaBSSA's implemen- tation, which serves as a proof of the proposed concept. Java program examples together with test suite generating results of JaBSSA's implementation upon pre- pared Java program examples are part of the program. These generated results are used for demonstration of capabilities and flaws of the proposed concept. 1
8

On implementing multiple pluggable dynamic language frontends on the JVM, using the Nashorn runtime / Om att implementera flera dynamiska språk-frontends på JVM med användning av Nashorns exekveringsmiljö

Gabrielsson, Andreas January 2015 (has links)
Nashorn is a JavaScript engine that compiles JavaScript source code to Java bytecode and executes it on a Java Virtual Machine. The new bytecode in-struction invokedynamic that was introduced in Java 7 to make it easier for dynamic languages to handle linking at runtime is used frequently by Nashorn. Nashorn also has a type system that optimizes the code by using primitive bytecode instructions where possible. They are known to be the fastest imple-mentations for particular operations. Either types are proved statically or a method called optimistic type guess-ing is used. That means that expressions are assumed to have an int value, the narrowest and fastest possible type, until that assumption proves to be wrong. When that happens, the code is deoptimized to use types that can hold the current value. In this thesis a new architecture for Nashorn is presented that makes Nashorn’s type system reusable to other dynamic language implementations. The solution is an intermediate representation very similar to bytecode but with untyped instructions. It is referred to as Nashorn bytecode in this thesis. A TypeScript front-end has been implemented on top of Nashorn’s cur-rent architecture. TypeScript is a language that is very similar to JavaScript with the main difference being that it has type annotations. Performance mea-surements which show that the type annotations can be used to improve the performance of the type system are also presented in this thesis. The results show that it indeed has an impact but that it is not as big as anticipated. / Nashorn är en JavaScriptmotor som kompilerar JavaScriptkod till Java bytekod och exekverar den på en Java Virtuell Maskin. Nashorn använder sig av den nya bytekodinstruktionen invokedynamic som introducerades i Java 7 för att göra det lättare för dynamiska språk att hantera dynamisk länkning. I Nashorn finns ett typsystem som optimerar koden genom att i så stor utsträckning som möjligt använda de primitiva bytekodinstruktioner som är kända för att vara de snabbaste implementationerna för specifika operationer. Antingen bevisas typen för ett uttryck statiskt om det är möjligt eller så används något som kallas för optimistisk typgissning. Det innebär att uttrycket antas ha typen int, den kompaktaste och snabbaste typen, ända tills det antagandet visar sig vara falskt. När det händer deoptimeras koden med typer som kan hålla det nuvarande värdet. I det här dokumentet presenteras en ny arkitektur för Nashorn som gör det möjligt för andra dynamiska språk att återanvända Nashorns typsystem för bättre prestanda. Lösningen är en intermediate representation som påminner om bytekod men som är uttökat men otypade instruktioner. I det här doku-mentet refereras den som Nashorn bytekod. En TypeScript front-end har implementerats ovanpå Nashorns nuvaran-de arkitektur. TypeScript är ett språk som liknar JavaScript på många sätt, den största skillnaden är att det har typannoteringar. Prestandamätningar som visar att typannoteringarna kan användas för att förbättra prestandan av Nashorns typsystem presenteras i det här dokumentet. Resultaten visar att typannoteringar kan användas för att förbättra prestandan men de har inte så stor inverkan som förväntat.
9

Supporting Software Development Tools with An Awareness of Transparent Program Transformations

Song, Myoungkyu 13 June 2013 (has links)
Programs written in managed languages are compiled to a platform-independent intermediate representation, such as Java bytecode. The relative high level of Java bytecode has engendered a widespread practice of changing the bytecode directly, without modifying the maintained version of the source code. This practice, called bytecode engineering or enhancement, has become indispensable in transparently introducing various concerns, including persistence, distribution, and security. For example, transparent persistence architectures help avoid the entanglement of business and persistence logic in the source code by changing the bytecode directly to synchronize objects with stable storage. With functionality added directly at the bytecode level, the source code reflects only partial semantics of the program. Specifically, the programmer can neither ascertain the program's runtime behavior by browsing its source code, nor map the runtime behavior back to the original source code. This research presents an approach that improves the utility of source-level programming tools by providing enhancement specifications written in a domain-specific language. By interpreting the specifications, a source-level programming tool can gain an awareness of the bytecode enhancements and improve its precision and usability. We demonstrate the applicability of our approach by making a source code editor and a symbolic debugger enhancements-aware. / Master of Science
10

多租戶雲端應用程式之中介軟體框架 / A Middleware Framework for Multi-tenant SaaS Applications

陳俊傑, Chen, Jiu Jye Unknown Date (has links)
近年來,雲端運算中的軟體即服務(Software as Service,SaaS)穩健與快速地成長。SaaS服務提供者在建置服務的過程中,無不希望盡可能地讓租戶共享資源,避免租戶擁有特殊資源,需要獨立維護,以降低維護營運成本。另一方面,也要能讓租戶們擁有一定程度的客製化能力,以製做出屬於租戶私有之服務邏輯。因此如何讓租戶在共有一切資源的前提下,又能提供客製化能力,將是SaaS服務提供者的一大課題。本研究所提出的中介軟體框架將在共用硬體及資料庫與單一應用程式的共用架構下,採用Force.com Universal Table資料架構,並提供三大特色功能,Tenant Aware、Data Access以及Tenant Customizability,來解決隔離性、存取Force.com Universal Table資料架構以及提供租戶客製化能力三大議題。透過此中介軟體框架應可幫助SaaS提供者,建置出一個資源共享、租戶具有客製能力與維護性高的多租戶雲端軟體服務。 / In recent years, Software as a service (SaaS), the service model of cloud computing, has been growing healthy and rapidly. When SaaS providers build service, they want tenants to share same resources, and not to have its own special resource which will cause providers to maintain it separately. SaaS providers want tenants sharing the same resources to reduce maintenance cost. But the current trend is to provide the customizability to tenants for customizing its own service. How to share resources under the premise of providing customizability to tenants will be the main challenge to SaaS providers. In this thesis, we propose a middleware framework based on shared hardware、database with a single application instance. Our framework will use the Force.com Universal Table schema as the foundation. The key features of our framework are Tenant Aware、Data Access and Tenant Customizability. These features will address the issues of isolating tenants, accessing the Force.com Universal Table schema and providing customizability to tenants. This middleware framework will help SaaS providers to build a resource-sharing, customizable multi-tenant SaaS with lower maintenance cost.

Page generated in 0.0452 seconds