会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 5. 发明授权
    • Method for eliminating common subexpressions from java byte codes
    • 从java字节码中消除公共子表达式的方法
    • US6158048A
    • 2000-12-05
    • US87349
    • 1998-05-29
    • Guei-Yuan LuehAli-Reza Adl-Tabatabai
    • Guei-Yuan LuehAli-Reza Adl-Tabatabai
    • G06F9/45
    • G06F8/443
    • Compilers are tools that generate efficient mappings from programs to machines. A Java "Just-In-Time" runs as part of an application, and as such, it must be fast and efficient in its use of memory. To achieve good performance and further optimize code generation, the present invention introduces a method for eliminating common subexpressions from Java bytecodes. The method of the present invention first loads a code stream containing sequences of computer code into computer memory. The expression value for a first expression of a first code sequence is computed and stored in a memory location. A tag is assigned to the memory location holding this expression value for tracking which expression sequences' values are held in memory locations. As code compilation continues, the code selector looks ahead in the code stream to see if any upcoming expression sequences already have expression values stored in a memory location. The code selector compares the expression of a second code sequence with the code sequences annotated by the tags of expression values currently stored in memory. If the second code sequence matches a sequence already associated with a memory location, then the value of the matched sequence is pushed from the memory location onto a stack, and the computations of the expression of the second code sequence is skipped. If the second expression does not match any of the expressions represented by the tags, the expression value of the second expression is calculated and stored in a memory location. This memory location is then annotated with its own expression tag for future comparisons with upcoming expressions in the code stream.
    • 编译器是从程序到机器生成高效映射的工具。 Java“Just-In-Time”作为应用程序的一部分运行,因此它在使用内存时必须快速高效。 为了实现良好的性能并进一步优化代码生成,本发明引入了一种从Java字节码中消除公共子表达式的方法。 本发明的方法首先将包含计算机代码序列的代码流加载到计算机存储器中。 计算第一代码序列的第一表达式的表达式值并存储在存储器位置中。 将标签分配给保存此表达式值的存储器位置,以跟踪哪些表达式序列的值保存在存储器位置。 随着代码编译的继续,代码选择器在代码流中前进,以查看即将到来的表达式序列是否已经存储在内存位置中的表达式值。 代码选择器将第二代码序列的表达式与由当前存储在存储器中的表达式值的标签注释的代码序列进行比较。 如果第二代码序列与已经与存储器位置相关联的序列匹配,则将匹配序列的值从存储器位置推送到堆栈,并且跳过第二代码序列的表达式的计算。 如果第二个表达式与标签表示的任何表达式不匹配,则计算第二个表达式的表达式值并将其存储在存储器中。 然后使用其自己的表达式标签注释该存储器位置,以便将来与代码流中的即将到来的表达式进行比较。
    • 7. 发明授权
    • Method for implementing dynamic type checking
    • 实现动态类型检查的方法
    • US07080354B2
    • 2006-07-18
    • US10109939
    • 2002-03-29
    • Ali-Reza Adl-TabatabaiGuei-Yuan LuehTatiana Shpeisman
    • Ali-Reza Adl-TabatabaiGuei-Yuan LuehTatiana Shpeisman
    • G06F9/44
    • G06F8/437
    • Methods and apparatuses for dynamic type checking are described. For one embodiment runtime code generation is used to effect dynamic type checking by generating code specialized to different object types. For one embodiment a virtual dynamic type check (DTC) function is generated for each object at run time. The virtual DTC function contains a sequence of instructions to type check every element (type) within an object's type hierarchy. The virtual DTC function is tailored for a particular type and thus conducts dynamic type checking more efficiently for objects of the particular type. For one embodiment the DTC function can complete type checking of interface type hierarchies. For one embodiment a compiler may determine whether a type is a class type or interface type and may generate a virtual DTC function only for interface types.
    • 描述了用于动态类型检查的方法和装置。 对于一个实施例,运行时代码生成用于通过生成专用于不同对象类型的代码来实现动态类型检查。 对于一个实施例,在运行时为每个对象生成虚拟动态类型检查(DTC)功能。 虚拟DTC功能包含一系列指令,用于键入检查对象类型层次结构中的每个元素(类型)。 虚拟DTC功能是针对特定类型量身定制的,因此对特定类型的对象进行更有效的动态类型检查。 对于一个实施例,DTC功能可以完成接口类型层次的类型检查。 对于一个实施例,编译器可以确定类型是类型还是接口类型,并且可以仅针对接口类型生成虚拟DTC功能。
    • 10. 发明授权
    • Method of run-time tracking of object references in Java programs
    • Java程序中对象引用的运行时跟踪方法
    • US06317869B1
    • 2001-11-13
    • US09587233
    • 2000-06-02
    • Ali-Reza Adl-TabatabaiGuei-Yuan Lueh
    • Ali-Reza Adl-TabatabaiGuei-Yuan Lueh
    • G06F944
    • G06F9/45516G06F12/0253Y10S707/99953Y10S707/99957
    • Many programming languages utilize reference pointers in computer code. Furthermore, some of these programming languages perform memory management in the form of garbage collection. Once such language is Java. During the execution of a garbage collection routine, the computer may need to locate all the variables containing reference values. The present invention introduces a method for run-time tracking of object references in computer code and determining which variables contain references to objects at garbage collection sites. The method of the present invention first creates a bit vector in memory. The bit vector is then initialized. Second, each variable declared in the computer program that may be used to store a reference value is assigned a unique bit within this bit vector. Each bit is maintained to indicate whether the variable it is assigned to is currently storing a reference value. Specifically, when a variable is assigned a reference value, the corresponding bit in the bit vector is set. When a variable is assigned a non-reference value, the corresponding bit in the bit vector is cleared.
    • 许多编程语言都使用计算机代码中的参考指针。 此外,这些编程语言中的一些以垃圾收集的形式执行内存管理。 一旦这样的语言是Java。 在执行垃圾回收程序期间,计算机可能需要定位包含引用值的所有变量。 本发明引入了一种用于计算机代码中对象引用的运行时跟踪的方法,并且确定哪些变量包含对垃圾收集站点上的对象的引用。 本发明的方法首先在存储器中产生位向量。 然后初始化位向量。 第二,在计算机程序中声明的可用于存储参考值的每个变量在该位向量中被分配一个唯一的位。 维持每个位以指示其被分配的变量当前是否存储参考值。 具体地说,当变量被赋予参考值时,位向量中的相应位被置位。 当变量分配了非参考值时,位向量中的相应位将被清除。