-
公开(公告)号:US20190243623A1
公开(公告)日:2019-08-08
申请号:US16384631
申请日:2019-04-15
发明人: JOHN ROBERT ROSE , BRIAN GOETZ , GUY STEELE
CPC分类号: G06F8/437 , G06F8/315 , G06F8/4441
摘要: In one approach, a method comprises receiving one or more higher-level instructions specifying to assign a value of a particular value type to a particular container of a plurality of containers, wherein the plurality of containers represent a data structure for maintaining one or more variables during execution of a block of code, wherein at least two containers of the plurality of containers are different sizes; generating one or more lower-level instructions that assign the value to the particular container based on applying one or more assignment rules to the one or more higher-level instructions based on the particular value type and executing the one or more lower-level instructions.
-
公开(公告)号:US20190155587A1
公开(公告)日:2019-05-23
申请号:US16153700
申请日:2018-10-05
发明人: Darius Amir HODAEI , Triinu VIILUP
IPC分类号: G06F8/41
摘要: A compiler is described which has a processor configured to receive a computer program comprising a plurality of instructions, the instructions comprising one or more variables and context of the variables. The compiler has a type selector configured, upon evaluation of an instruction comprising a variable by the compiler, to infer a type of the variable using the context of the variable and dereference the variable using the inferred type.
-
公开(公告)号:US20180246738A1
公开(公告)日:2018-08-30
申请号:US15893215
申请日:2018-02-09
申请人: FUGUE, INC.
CPC分类号: G06F9/44589 , G06F8/31 , G06F8/35 , G06F8/40 , G06F8/437 , G06F9/45512 , G06F9/5072 , G06F21/577 , G06F2221/033
摘要: A system and method for providing and executing a domain-specific programming language for cloud services infrastructure is provided. The system may be used to integrate references to external entities, such as cloud service compute instances, directly into a domain-specific programming language, allowing developers to easily integrate cloud services directly using the domain-specific programming language. A compiler stored within a cloud operating system can include one or more validations that can check instantiations of types within the domain-specific language for compliance with one or more policies set by a system administrator of a computing enterprise.
-
公开(公告)号:US10013245B2
公开(公告)日:2018-07-03
申请号:US15083167
申请日:2016-03-28
申请人: Facebook, Inc.
CPC分类号: G06F8/51 , G06F8/40 , G06F8/41 , G06F8/437 , G06F8/443 , G06F9/38 , G06F9/3846 , G06F9/45508
摘要: Techniques provided implement automatic data type annotation in dynamically-typed source code. A codebase, which may comprise a plurality of source code files, is scanned at a global level. The resulting scanned data may describe characteristics of the codebase, including variable and function usage. Based on inferences drawn from the scanning, data types are determined for different variables, expressions, or functions to facilitate conversion from dynamically-typed source code to statically-typed source code. For example, if a function is called once with a parameter value of data type A (e.g., class A), and another time with a parameter value of data type B (e.g., class B), a conversion tool may annotate the parameter variable in the declaration of the function with a data type D (e.g., class d) when data type D is identified as a common ancestor (e.g., superclass) to both data type A and data type B.
-
公开(公告)号:US09934010B1
公开(公告)日:2018-04-03
申请号:US14675935
申请日:2015-04-01
CPC分类号: G06F8/445 , G06F8/30 , G06F8/314 , G06F8/41 , G06F8/427 , G06F8/437 , G06F8/447 , G06F8/451 , G06F8/453 , G06F9/48 , G06F9/546 , G06F2209/548
摘要: Programming in a multiprocessor environment includes accepting a program specification that defines a plurality of processing modules and one or more channels for sending data between ports of the modules, mapping each of the processing modules to run on a set of one or more processing engines of a network of interconnected processing engines, and for at least some of the channels, assigning one or more elements of one or more processing engines in the network to the channel for sending data between respective processing modules.
-
6.
公开(公告)号:US20180081648A1
公开(公告)日:2018-03-22
申请号:US15469176
申请日:2017-03-24
CPC分类号: G06F9/4552 , G06F8/433 , G06F8/437 , G06F9/44521
摘要: Operations include determining a compile-time representation of a particular type. A request for the compile-time representation of the particular type comprises a source representation of the particular type. Based on and subsequent to receiving the request, a source representation of a source code file comprising the source representation of the particular type is generated. The source representation of the source code file is converted to a compile-time representation of the source code file. The compile-time representation of the particular type is derived from the source time representation of the source code file. The source code file may also be compiled to generate a set of compiled code. The set of compiled code may be loaded into a virtual machine for generating a runtime representation of the set of compiled code. A runtime representation of the particular type is derived from the runtime representation of the set of compiled code.
-
公开(公告)号:US20170364339A9
公开(公告)日:2017-12-21
申请号:US15055469
申请日:2016-02-26
发明人: Brian Goetz , John R. Rose , Maurizio Cimadamore
CPC分类号: G06F9/4492 , G06F8/24 , G06F8/315 , G06F8/41 , G06F8/437 , G06F8/443 , G06F8/447 , G06F8/70 , G06F8/71 , G06F8/76 , G06F9/4428 , G06F9/443 , G06F9/4433 , G06F9/44521 , G06F9/4488 , G06F9/449 , G06F9/45516
摘要: Generic method specialization represents the ability to specialize generic methods over various types. When implementing generic method specialization an annotated class file may include a generic method declaration that is annotated with specialization metadata indicating elements of the generic method to be adjusted during specialization. The annotated method may be usable directly as an erased method implementation (e.g., to load the method when instantiated with reference types) and may also be usable as a template for specialization. When a generic method is being prepared for execution, such as when it is first invoked during runtime, a specialization method generator function may be used to specialize the generic method based on the specialization metadata in the generic method declaration. The specialization method generator function may use the annotated generic method declaration as a template for specialization.
-
公开(公告)号:US09785456B2
公开(公告)日:2017-10-10
申请号:US14660143
申请日:2015-03-17
发明人: Brian Goetz , John R. Rose , Alexander R. Buckley
CPC分类号: G06F9/4492 , G06F8/24 , G06F8/315 , G06F8/41 , G06F8/437 , G06F8/443 , G06F8/447 , G06F8/70 , G06F8/71 , G06F8/76 , G06F9/4428 , G06F9/443 , G06F9/4433 , G06F9/44521 , G06F9/4488 , G06F9/449 , G06F9/45516
摘要: Metadata-driven dynamic specialization may include applying a type erasure operation to a set of instruction in a generic class or to a method declaration that includes typed variables using an encoded form of an instruction or an argument to an instruction. The instruction may operate on values of the reference types and the argument may be a signature that indicates the reference types. The encoded form may be annotated to include metadata indicating which type variables have been erased and which reference types are the erasures of type variables. Additionally, the metadata may indicate that the instruction operates on values of, and that the argument indicates reference types that are erasures of, the type variables of the class (or method) declaration. Moreover, the encoded form of the instruction or argument may be used directly without specialization or transformation.
-
公开(公告)号:US09753707B2
公开(公告)日:2017-09-05
申请号:US14808150
申请日:2015-07-24
发明人: Derek Jay Conrod
CPC分类号: G06F8/4434 , G06F3/0604 , G06F3/0661 , G06F3/0673 , G06F8/437 , G06F8/443 , G06F8/48 , G06F8/71 , G06F9/4552
摘要: A method and a computing device for reducing deoptimization in a virtual machine are provided. Source code of a dynamically-typed program is compiled. A context-free type-state recorder records a first data type of a value associated with a particular named memory location within the source code. Optimized code may be generated based on the first data type of the value being a matching data type for global values associated with the particular named memory location. One or more global values associated with the particular named memory location may be type-checked. The context-free type-state recorder may record, if one or more of the global values associated with the particular named memory location is a different data type than the first data type, one or more different data types associated with the particular named memory location. New optimized code may then be generated.
-
公开(公告)号:US09690554B2
公开(公告)日:2017-06-27
申请号:US13274199
申请日:2011-10-14
CPC分类号: G06F8/437 , G06F9/4488
摘要: A type system includes a dual representation for basic data types. One representation is the basic data type representation common to such basic built-in data types, known as an unboxed value type or simply as a value type. Each of the basic data types also has a boxed representation that can be stored in the object hierarchy of the type system. This dual representation can also be extended to user-defined types, so that user-defined types may exist both as an unboxed value type and as an object within the object hierarchy of the type system. This dual representation allows the compiler and/or runtime environment to select the most effective and efficient representation for the data type depending on the particular need at the moment.
-
-
-
-
-
-
-
-
-