Abstract:
A compiler supporting a language in which selected semantic objects are represented as data objects. The data objects may be used in multiple ways to expand the capabilities of the programming language. Data objects may be passed to applications and used to create executable instructions for that application. In this way, instructions written in the native language of the compiler may be used to control applications that accept programs in a language inconsistent with the native language of the compiler. The syntax checking and variable binding capabilities of the compiler may be used for those instructions that will be executed by an application separate from the object code generated by the compiler. The semantic objects represented as data objects may be selected based on express operations included in the source code or may be based on implicit type conversion.
Abstract:
Scheduler combinators facilitate scheduling. One or more combinators, or operators, can be applied to an existing scheduler to compose a new scheduler or decompose an existing scheduler into multiple facets.
Abstract:
Mapping is performed between operations of an abstract asynchronous programming model and a concrete asynchronous programming model. In other words, differences between asynchronous programming models are bridged to enable interaction.
Abstract:
Reshaping of streams is provided to facilitate utilizing the streams without rapidly increasing memory requirements as the size of the stream increases. The streams can be pushed to alternative storage upon being reshaped, for example, such as to a persistent storage. If the streams lose structure, for example if a hierarchical stream is reshaped into a flat structure for storage in a database, structural information can be stored along with the streams and utilized to shape the stream to its original structure upon request for data, for example. Streams can be pulled from an exposing device or application, and portions of the stream can be transformed and stored according to a set of stop elements; the stop elements can be associated with functions that take action on the stream upon reaching a stop element, such as transforming and storing a portion thereof.
Abstract:
A computer programming language, computer-readable medium and method for pattern matching over structured literals (e.g., XML literals, object literals, type literals, code literals, etc.). The programming language may have a pattern defined in an object-oriented programming language. The pattern may be a structured literal that is capable of matching a value contained in an incoming data stream. The structured literal may include one or more variables, which may be bound to the value if the pattern matches the value.
Abstract:
A compositional application programming interface (API) permits non-sequential construct declaration independent of other API calls. A wrapper is applied to an imperative API to provide a compositional interface that enables arbitrary and autonomous construct declaration. Additionally, a literal syntax (e.g., code literals, graphic literals . . . ) affords a convenient declaration mechanism for such constructs.
Abstract:
Mechanisms are afforded for supporting cross platform widgets. A generic widget can be converted into a specialized widget of a corresponding platform. Dually, a specialized widget can be generalized to a generic widget for subsequent deployment on the same or different host. Furthermore, support is provided for compositional widgets across platforms.
Abstract:
Bulk operations including create, update, and delete operations are supported within the context of language-integrated queries. Such bulk operations can be implemented as distinct operations. Other operations, including query operators defining a collection of data over which the bulk operations can execute, can be restricted as a function of a specific bulk operation.
Abstract:
A spreadsheet model is employed to facilitate distributed computations. Spreadsheets and cells are generalized to correspond to arbitrary data sources that can be remote from each other, among other things. Functions can be specified with respect to these arbitrary data sources to produce combinations of data or mashups, for example, wherein changes initiate re-computation with respect to dependent data sources.
Abstract:
Parsing technology is applied to observable collections. More specifically, a parser, such as combinator parser, can be employed to perform syntactic analysis over one or more observable collections. Further, multiple observable collections can be combined into a single collection and time can be captured by annotating collection items or generating time items.