Method and system for creating programs using code having coupled syntactic and semantic relationship -> Monitor Keywords
Fresh Patents
Monitor Patents Patent Organizer File a Provisional Patent Browse Inventors Browse Industry Browse Agents Browse Locations
site info Site News  |  monitor Monitor Keywords  |  monitor archive Monitor Archive  |  organizer Organizer  |  account info Account Info  |  
10/05/06 - USPTO Class 717 |  103 views | #20060225057 | Prev - Next | About this Page  717 rss/xml feed  monitor keywords

Method and system for creating programs using code having coupled syntactic and semantic relationship

USPTO Application #: 20060225057
Title: Method and system for creating programs using code having coupled syntactic and semantic relationship
Abstract: A new fundamental unit of programming which couples semantic and syntactic relationships, and a system for compiling those units and programs written in those units. A Sym is comprised of a Name, an Inherit Statement, a Self Description, and a Definition. Syms couple syntactic and semantic relationships through their use of Syntactic References in their Self Description and Semantic References in their Definition. Syms and programs written in Syms are compiled through the Sym Execution System. (end of abstract)



Agent: Blakely Sokoloff Taylor & Zafman - Los Angeles, CA, US
Inventor: Nile Josiah Geisinger
USPTO Applicaton #: 20060225057 - Class: 717143000 (USPTO)

Related Patent Categories: Data Processing: Software Development, Installation, And Management, Software Program Development Tool (e.g., Integrated Case Tool Or Stand-alone Development Tool), Translation Of Code, Compiling Code, Analysis Of Code Form, Parsing, Syntax Analysis, And Semantic Analysis

Method and system for creating programs using code having coupled syntactic and semantic relationship description/claims


The Patent Description & Claims data below is from USPTO Patent Application 20060225057, Method and system for creating programs using code having coupled syntactic and semantic relationship.

Brief Patent Description - Full Patent Description - Patent Application Claims
  monitor keywords



RELATED APPLICATIONS

[0001] This application is a continuation of co-pending U.S. patent application Ser. No. 10/060,433, filed Jan. 30, 2002, which is incorporated by reference herein in its entiety.

REFERENCE TO A SEQUENCE LISTING

[0002] By way of example, an implementation of one embodiment of the invention is included as source code on an accompanying CD-ROM. In accordance with the Copyright Notice herein, the copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyrights whatsoever.

COPYRIGHT NOTICES

[0003] A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyrights whatsoever.

FIELD OF THE INVENTION

[0004] This invention relates generally to a method for creating computer programs. More specifically, the present invention relates to programming models and frameworks that are designed to facilitate and enforce the creation of scalable computer programs.

BACKGROUND

[0005] Side effects and scalability issues have been constant problems in computer science since the inception of the discipline. In the past, scalability problems, i.e., problems arising from creating, maintaining, and improving large computer programs, have been solved by coupling different elements together to form new fundamental units of programming. The transition from unstructured to structured programming and from structured programming to object-oriented programming are examples of this approach. Today, related art in the field has concentrated on improving the composition of objects through data-flow systems, loose coupling of interfaces, design patterns, and frameworks for scalable network software.

[0006] Programmers initially encountered scalability problems with unstructured programming languages. Programs written with unstructured languages like Basic or Cobol execute a series of instructions linearly until the computer comes to a jump or goto instruction. The computer then jumps to another part of memory and starts executing code there. As explained in Edgar Dijkstra's paper "Go To Statement Considered Harmful", because the flow control of a program jumps from place to place with no set structure, it is impossible to guarantee that a call to a set of instructions will return rather than following a different execution path.

[0007] The undesirable side effects that can be produced by unintentionally following an execution path make it extremely difficult to scale unstructured programs. The solution to this problem, which can be found in Kenneth Louden's "Programming Languages: Principles and Practices" is to force calls to code to have a single entry and exit point. Popular structured programming languages, like C and Pascal, forbid the goto and jump instructions of unstructured languages and eliminate the side effects of the unstructured model.

[0008] But structured programming languages also have scalability problems. Because variables in structured languages can have dozens of functions depending on them for their operations, changing the value of a single variable can have unintended side effects on any of the functions in a program. This hinders reuse and cripples scalability because it is impossible to guarantee that new functions will not have unintended side effects on data and other existing functions. "Object Oriented Design Heuristics" by Arthur J. Riel explains how this scalability problem is solved via the object, a unit of programming that couples data and methods.

[0009] In the past decade, the latest developments in building scalable computer programs have focused on monadic combinators in functional programming languages and improving how objects in object-oriented systems are composed. Monadic combinators, which are the closest related art, offer a scalable method for building parsers in functional languages like Haskell. Monadic combinators can be composed out of other monadic combinators and their results can be composed to perform calculations.

[0010] Outside of academia, the majority of work in the field has concentrated on components, which make it easy to create reusable objects. Loose interface coupling, whether by reading component signatures or using design patterns like abstract factories, are also widely used. Systems that aid programmers in constructing proofs that programs are correct and architectures for integrating diverse components are also popular.

[0011] These new contributions do not replace the object with a new fundamental unit, but instead provide frameworks or specially designed objects for solving common scalability problems in object-oriented software development. As a result, the popular programming languages in use today and the problems that attend them have not changed substantially since the introduction of object-oriented programming thirty years ago. In particular, the scalability problems that arise from the lack of coupling between syntactic and semantic relationships in object-oriented programming have not been addressed. Therefore, the need exists for a new programming model based on a new fundamental unit of programming that couples syntactic and semantic relationships and solves the scalability problems faced by today's programmers.

SUMMARY OF THE DESCRIPTION

[0012] It is an object of the invention to make it easier to reuse the source code of software.

[0013] It is another object of the invention to make it easier to create and modify large systems of software.

[0014] It is another object of the invention to make it possible to construct software out of code with coupled syntactic and semantic relationships.

[0015] The present invention is a method for generating executable code for computer programs and a model for a programming language. The invention eliminates syntactic side effects common to computer programs by coupling together syntactic and semantic relationships in units called Syms. In other literature produced by the applicant and cited in the accompanying information disclosure statement, Syms are referred to as Words or Symbols. This coupling, like the coupling between data and methods in object-oriented programming, is created through the establishment of bidirectional relationships between syntactic and semantic relationships. The principal advantage of the invention is that it makes it easier to construct, integrate, maintain, comprehend, and improve software.

[0016] In one embodiment, the Sym is comprised of a Name, an Inherit Statement, a Self Description, and a Definition. The Name provides a unique identifier to each Sym, and provides a basis for referencing that Sym. The Inherit statement specifies what other Syms a Sym should inherit from and the order of that inheritance. The Self Description matches data and Syms, and establishes syntactic relationships between one or more Syms and pieces of data. The Definition establishes what a Sym means in terms of programming code or other Syms, and creates semantic relationships through code.

[0017] Executable code is generated from a Sym or a program written in Syms by the Sym Execution System. In one embodiment, the Sym Execution System is comprised of a Hasher, an Inheritance System, a Matching System, a Polymorphic Sym Matcher, a Definition Translator and a Receiver, Action, and Modifier Sym System. The Hasher uses a Sym's Name or Pattern to determine where to store the Sym. The Inheritance System determines what Syms a Sym inherits from. The Matching System uses a Sym's Self Description to match the Sym against a program. The Polymorphic Sym Matcher determines what child Syms inherit from the parent Sym being compiled and then generates the code to match those child Syms when the parent Sym is matched. The Receiver, Action, and Modifier Sym System creates all of the additional code and performs all of the additional checks needed for specialized types of Syms.

BRIEF DESCRIPTION OF THE DRAWINGS

Continue reading about Method and system for creating programs using code having coupled syntactic and semantic relationship...
Full patent description for Method and system for creating programs using code having coupled syntactic and semantic relationship

Brief Patent Description - Full Patent Description - Patent Application Claims

Click on the above for other options relating to this Method and system for creating programs using code having coupled syntactic and semantic relationship patent application.
###
monitor keywords

How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like Method and system for creating programs using code having coupled syntactic and semantic relationship or other areas of interest.
###


Previous Patent Application:
Method, system, and device for indexing and processing of expressions
Next Patent Application:
Method and device for creating and using pre-internalized program files
Industry Class:
Data processing: software development, installation, and management

###

FreshPatents.com Support
Thank you for viewing the Method and system for creating programs using code having coupled syntactic and semantic relationship patent info.
IP-related news and info


Results in 0.6734 seconds


Other interesting Feshpatents.com categories:
Tyco , Unilever , Warner-lambert , 3m 174
filepatents (1K)

* Protect your Inventions
* US Patent Office filing
patentexpress PATENT INFO