[
    {
        "name": "Poh, Hean Lee",
        "degree": "Masters",
        "year": "1987",
        "title": "Incorporating Time in the New World of Computing Systems",
        "advisor": "Unknown, Unknown",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04122012-105252507",
        "creators": [
            {
                "name": {
                    "family": "Poh",
                    "given": "Hean Lee"
                },
                "id": "Poh-Hean-Lee",
                "display_name": "Poh, Hean Lee"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/85gd-y881",
        "abstract": "The New World of Computing System, referred to as the New World system, is a\r\ntotal system for the structuring, manipulation and communication of information. Time\r\nis a ubiquitous aspect of most databases. The aim of this thesis is to study the problems\r\nassociated with the implementation of time in the New World system. Time information\r\nis not only stored in New World, they can be retrieved and processed to answer various\r\ntypes of user queries. This is an additional feature as compared to most models of time\r\nimplementation in databases where the relationships between time intervals are not dealt\r\nwith. To start with, ways of representing time in the form of floating point number are\r\ndevised and discussed. Then the conversion of time information from its various user\r\naccustomed forms to New World system internal form and back are explored. Finally,\r\nthe ambiguities and complexities involved in finding the intersection, subtraction, union\r\nand extension of two different sequences of time intervals associated with an object in a\r\ndatabase are studied and algorithms for resolving these are presented. An explanation on\r\nhow the crunchers work with the addition of time information is also given. This includes\r\ndiscussing about how quantifiers such as at least 2, how many etc. are handled in the New\r\nWorld system. Case studies are also conducted to test out these routines. As conclusion,\r\nthe remaining problems associated with time implementation not covered in this thesis\r\nwork are discussed."
    },
    {
        "name": "Lazzaro, John Paul",
        "degree": "Masters",
        "year": "1986",
        "title": "anaLOG: A Functional Simulator for VLSI Neural Systems",
        "advisor": "Mead, Carver",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04112012-092513753",
        "creators": [
            {
                "name": {
                    "family": "Lazzaro",
                    "given": "John Paul"
                },
                "id": "Lazzaro-John-Paul",
                "display_name": "Lazzaro, John Paul"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Mead",
                    "given": "Carver"
                },
                "id": "Mead-C-A",
                "orcid": "0000-0003-4051-0462",
                "role": "advisor",
                "display_name": "Mead, Carver"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/af3r-e056",
        "abstract": "No abstract."
    },
    {
        "name": "Schweizer, David Lawrence",
        "degree": "Masters",
        "year": "1986",
        "title": "Some Results on Kolmogorov-Chaitin Complexity",
        "advisor": "Abu-Mostafa, Yaser S.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04132012-090947715",
        "creators": [
            {
                "name": {
                    "family": "Schweizer",
                    "given": "David Lawrence"
                },
                "id": "Schweizer-David-Lawrence",
                "display_name": "Schweizer, David Lawrence"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Abu-Mostafa",
                    "given": "Yaser S."
                },
                "id": "Abu-Mostafa-Y-S",
                "role": "advisor",
                "display_name": "Abu-Mostafa, Yaser S."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/50qm-c858",
        "abstract": "No abstract."
    },
    {
        "name": "Platt, John Carlton",
        "degree": "Masters",
        "year": "1985",
        "title": "Sequential Threshold Circuits",
        "advisor": "Mead, Carver; Hopfield, John J.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04122012-104617758",
        "creators": [
            {
                "name": {
                    "family": "Platt",
                    "given": "John Carlton"
                },
                "id": "Platt-John-Carlton",
                "orcid": "0000-0002-5652-5303",
                "display_name": "Platt, John Carlton"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Mead",
                    "given": "Carver"
                },
                "id": "Mead-C-A",
                "orcid": "0000-0003-4051-0462",
                "role": "advisor",
                "display_name": "Mead, Carver"
            },
            {
                "name": {
                    "family": "Hopfield",
                    "given": "John J."
                },
                "id": "Hopfield-J-J",
                "role": "advisor",
                "display_name": "Hopfield, John J."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/fsx9-vh16",
        "abstract": "No abstract."
    },
    {
        "name": "Steele, Craig Stanley",
        "degree": "Masters",
        "year": "1985",
        "title": "Placement of Communicating Processes on Multiprocessor Networks",
        "advisor": "Seitz, Charles L.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04122012-143033166",
        "creators": [
            {
                "name": {
                    "family": "Steele",
                    "given": "Craig Stanley"
                },
                "id": "Steele-Craig-Stanley",
                "display_name": "Steele, Craig Stanley"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "advisor",
                "display_name": "Seitz, Charles L."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/kemx-dv57",
        "abstract": "No abstract."
    },
    {
        "name": "Whiting, Douglas Lee",
        "degree": "PhD",
        "year": "1985",
        "title": "Bit-Serial Reed-Solomon Decoders in VLSI",
        "advisor": "McEliece, Robert J.",
        "url": "https://resolver.caltech.edu/CaltechETD:etd-03252008-090414",
        "creators": [
            {
                "name": {
                    "family": "Whiting",
                    "given": "Douglas Lee"
                },
                "id": "Whiting-Douglas-Lee",
                "display_name": "Whiting, Douglas Lee"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "McEliece",
                    "given": "Robert J."
                },
                "id": "McEliece-R-J",
                "role": "advisor",
                "display_name": "McEliece, Robert J."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "chair",
                "display_name": "Seitz, Charles L."
            },
            {
                "name": {
                    "family": "Kajiya",
                    "given": "James Thomas"
                },
                "id": "Kajiya-J-T",
                "role": "member",
                "display_name": "Kajiya, James Thomas"
            },
            {
                "name": {
                    "family": "Abu-Mostafa",
                    "given": "Yaser S."
                },
                "id": "Abu-Mostafa-Y-S",
                "role": "member",
                "display_name": "Abu-Mostafa, Yaser S."
            },
            {
                "name": {
                    "family": "Berlekamp",
                    "given": "Elwyn Ralph"
                },
                "id": "Berlekamp-Elwyn-Ralph",
                "role": "member",
                "display_name": "Berlekamp, Elwyn Ralph"
            },
            {
                "name": {
                    "family": "McEliece",
                    "given": "Robert J."
                },
                "id": "McEliece-R-J",
                "role": "member",
                "display_name": "McEliece, Robert J."
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/bjd1-9j44",
        "abstract": "<p>Reed-Solomon codes are known to provide excellent error-correcting capabilities on many types of communication channels. Although efficient decoding algorithms have been known for over fifteen years, currently available decoder systems are large both in size and in power consumption. Such systems typically use a single, very fast, fully parallel finite-field multiplier in a sequential architecture. Thus, more processing time is required as the code redundancy increases. By using many arithmetic units on a single chip, it is possible to exploit the concurrency inherent in the decoding algorithms to attain performance levels previously possible only with large ECL systems.</p>\r\n\r\n<p>An investigation into the structure of binary extension fields reveals that the common arithmetic operations used in decoding can be implemented quite efficiently in a bit-serial fashion, using any of several bases over GF(2). Berlekamp's dual-basis multiplier is generalized to the product of two arbitrary field elements, and a necessary and sufficient condition is then derived for the existence of a self-dual basis. Efficient methods for bit-serial multiplicative inversion are also discussed, greatly reducing the complexity traditionally associated with this operation.</p>\r\n\r\n<p>Using these bit-serial techniques, several architectures for implementing each phase of the known Reed-Solomon decoding algorithms are presented and compared. Simple methods are presented to allow power-sum syndrome decoders to handle codes with a variety of block lengths and redundancies. Each approach comes within a factor of log <i>n</i> (where <i>n</i> is the block length of the code) of the recently derived asymptotic lower bounds for both time and area. Results from a student project to lay out a prototype decoder chip using the Berlekamp-Massey algorithm are also discussed. By utilizing the parallelism inherent in the key equation solution, these architectures can decode received words at a speed independent of the redundancy of the code.</p>"
    },
    {
        "name": "Chen, Wen-Chi",
        "degree": "Masters",
        "year": "1984",
        "title": "Hierarchy of Graph Isomorphism Testing",
        "advisor": "Bryant, Randal E.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:03272012-160759964",
        "creators": [
            {
                "name": {
                    "family": "Chen",
                    "given": "Wen-Chi"
                },
                "id": "Chen-W-C",
                "display_name": "Chen, Wen-Chi"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Bryant",
                    "given": "Randal E."
                },
                "id": "Bryant-R",
                "orcid": "0000-0001-5024-6613",
                "role": "advisor",
                "display_name": "Bryant, Randal E."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/pgav-zy26",
        "abstract": "No abstract."
    },
    {
        "name": "Chiang, Chao-Lin",
        "degree": "Masters",
        "year": "1984",
        "title": "Towards Concurrent Arithmetic: Residue Arithmetic and VLSI",
        "advisor": "Johnsson, Lennart",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04022012-150108167",
        "creators": [
            {
                "name": {
                    "family": "Chiang",
                    "given": "Chao-Lin"
                },
                "id": "Chiang-Chao-Lin",
                "display_name": "Chiang, Chao-Lin"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Johnsson",
                    "given": "Lennart"
                },
                "id": "Johnsson-L",
                "orcid": "0000-0003-0337-879X",
                "role": "advisor",
                "display_name": "Johnsson, Lennart"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/mh9h-1v86",
        "abstract": "No abstract."
    },
    {
        "name": "Derby, Howard",
        "degree": "Masters",
        "year": "1984",
        "title": "Using Logic Programming for Compiling APL",
        "advisor": "Unknown, Unknown",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04092012-134858703",
        "creators": [
            {
                "name": {
                    "family": "Derby",
                    "given": "Howard"
                },
                "id": "Derby-Howard",
                "display_name": "Derby, Howard"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/gmjh-z702",
        "abstract": "APL is a dynamically typed language which deals with arrays whose type,\r\nnumber of dimensions (rank) and size are not fixed at compile time, but are instead\r\ndetermined at run time. This makes APL more difficult to compile than static languages\r\nlike Pascal or FORTRAN. This thesis describes a prototype implementation\r\nof the core of an APL compiler. The intention thus far has been to demonstrate\r\ntechniques for dealing with some of the issues that arise when trying to implement\r\nAPL efficiently, rather than to produce a working implementation. The present\r\nprogram does not do any of the initial lexical processing required, and only compiles\r\ninto intermediate code. Object code is never produced. The prototype has\r\nmany APL features missing and is undoubtedly full of bugs."
    },
    {
        "name": "Lutz, Christopher",
        "degree": "Masters",
        "year": "1984",
        "title": "Design of the Mosaic Processor",
        "advisor": "Seitz, Charles L.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04122012-093644670",
        "creators": [
            {
                "name": {
                    "family": "Lutz",
                    "given": "Christopher"
                },
                "id": "Lutz-Christopher",
                "orcid": "0000-0002-7993-4759",
                "display_name": "Lutz, Christopher"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "advisor",
                "display_name": "Seitz, Charles L."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/cs85-zs74",
        "abstract": "No abstract."
    },
    {
        "name": "Ngai, John Yee-Keung",
        "degree": "Masters",
        "year": "1984",
        "title": "The General Interconnect Problem of Integrated Circuits",
        "advisor": "Seitz, Charles L.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04132012-084100294",
        "creators": [
            {
                "name": {
                    "family": "Ngai",
                    "given": "John Yee-Keung"
                },
                "id": "Ngai-John-Yee-Keung",
                "display_name": "Ngai, John Yee-Keung"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "advisor",
                "display_name": "Seitz, Charles L."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/fgcc-ks03",
        "abstract": "<p>This thesis is concerned with the interconnection problem of custom integrated circuits. It may be broadly defined as the transformation of circuit description represented by the notion of modules together with the circuit connectivity requirements, into wiring patterns which implement the required connectivities. Conventional approaches to its solution are presented. Issues such as partition to placement and routing and various layout optimization tradeoffs are discussed. A detail hierarchical routing model with timing considerations that extends naturally to multiple conducting layer environment is presented. Several of the implications of this extension are also discussed.</p>\r\n\r\n<p>The rest of this thesis deals with an experiment with the stepping approach to routing as an alternative to the conventional cellular approach emphasizing simplicity rather than optimization. Algorithms for routing signals and power developed for the stepping router are presented. An implementation of this approach by the author together with some test examples and their results are also described. This thesis concludes with a few suggestions for further research work in this area which the author considers very important from the experience gained during the work on this thesis.</p>"
    },
    {
        "name": "Oyang, Yen-Jen",
        "degree": "Masters",
        "year": "1984",
        "title": "HEX: A Hierarchical Circuit Extractor",
        "advisor": "Bryant, Randal E.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:05022012-105611552",
        "creators": [
            {
                "name": {
                    "family": "Oyang",
                    "given": "Yen-Jen"
                },
                "id": "Oyang-Y-J",
                "orcid": "0009-0001-6241-9881",
                "display_name": "Oyang, Yen-Jen"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Bryant",
                    "given": "Randal E."
                },
                "id": "Bryant-R",
                "orcid": "0000-0001-5024-6613",
                "role": "advisor",
                "display_name": "Bryant, Randal E."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/mptd-b683",
        "abstract": "This report describes the algorithm, implementation, and performance of a hierarchical circuit extractor, HEX, for Metal-Oxide Semiconductor (MOS) layout designs at Caltech. The input to HEX is a layout design in Caltech\r\nIntermediate Form (CIF), a hierarchical layout description language, and the output is a hierarchical netlist describing the circuit. HEX avoids redundant\r\nwork by finding out the repetitive cells in the input CIF file. To handle overlapping instances, HEX modifies the hierarchy in the CIF file to generate a new one without overlapping instances. HEX then traverses the resulting\r\nhierarchical structure, calls a flat extractor to extract leaf cells and composes cells bottom up to get the circuit information of the whole chip."
    },
    {
        "name": "Su, Wen-King",
        "degree": "Masters",
        "year": "1984",
        "title": "Supermesh",
        "advisor": "Seitz, Charles L.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04122012-161148552",
        "creators": [
            {
                "name": {
                    "family": "Su",
                    "given": "Wen-King"
                },
                "id": "Su-Wen-King",
                "display_name": "Su, Wen-King"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "advisor",
                "display_name": "Seitz, Charles L."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/yvj1-jt57",
        "abstract": "No abstract."
    },
    {
        "name": "Athas, William C.",
        "degree": "Masters",
        "year": "1983",
        "title": "A VLSI Combinator Reduction Engine",
        "advisor": "Seitz, Charles L.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:03262012-092805759",
        "creators": [
            {
                "name": {
                    "family": "Athas",
                    "given": "William C."
                },
                "id": "Athas-William-C",
                "display_name": "Athas, William C."
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "advisor",
                "display_name": "Seitz, Charles L."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/r471-je71",
        "abstract": "No abstract."
    },
    {
        "name": "Choo, Young-il",
        "degree": "Masters",
        "year": "1983",
        "title": "Hierarchical Nets: A Structured Petri Net Approach to Concurrency",
        "advisor": "Kajiya, James Thomas",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04022012-150759898",
        "creators": [
            {
                "name": {
                    "family": "Choo",
                    "given": "Young-il"
                },
                "id": "Choo-Young-il",
                "display_name": "Choo, Young-il"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Kajiya",
                    "given": "James Thomas"
                },
                "id": "Kajiya-J-T",
                "role": "advisor",
                "display_name": "Kajiya, James Thomas"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/t5w4-vt07",
        "abstract": "<p>Liveness and safeness are two key properties Petri nets should have when they are used to model asynchronous systems. The analysis of liveness and safeness for general Petri nets, though shown to be decidable by Mayr [1981], is still computationally expensive (Lipton [1976]). In this paper an hierarchical approach is taken: a class of Petri nets is recursively defined starting with simple, live and safe structures, becoming progressively more complex using net transformations designed to preserve liveness and safeness.</p>\r\n\r\n<p>Using simple net transformations, nice nets, which are live and safe, are defined. Their behavior is too restrictive for modeling non-trivial systems, so the mutual exclusion and the repetition constructs are added to get \u00b5-\u03c1-nets. Since the use of mutual exclusions can cause deadlock, and the use of repetitions can cause loss of safeness, restrictions for their use are given. Using \u00b5-\u03c1-nets as the building blocks, hierarchical nets are defined. When the mutual exclusion and repetition constructs are allowed between hierarchical nets, distributed hierarchical nets are obtained. Examples of distributed hierarchical nets used to solve synchronization problems\r\nare given.</p>\r\n\r\n<p>General net transformations not preserving liveness or safeness, and a notion of duality are presented, and their effect on Petri net behavior is considered.</p>"
    },
    {
        "name": "Holstege, Eric John",
        "degree": "Masters",
        "year": "1983",
        "title": "Type Inference in a Declarationless, Object-Oriented Language",
        "advisor": "Unknown, Unknown",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04112012-080413185",
        "creators": [
            {
                "name": {
                    "family": "Holstege",
                    "given": "Eric John"
                },
                "id": "Holstege-Eric-John",
                "display_name": "Holstege, Eric John"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/sa4t-bn94",
        "abstract": "<p>In recent years, two developments in the design of programming languages have yielded significant improvements in a number of areas from the standard FBAPP programming model. These are the object-oriented paradigm, and variable polymorphism.</p>\r\n\r\n<p>The object-oriented programming model allows the specification, hence restriction of the operations allowed on a data structure, something not possible with the more traditional PASCAL-style record structuring. This\r\nability to encapsulate data from the outside world gives a greater security and error avoidance in very large software projects involving many programmers.</p>\r\n\r\n<p>In addition, the object-oriented style is conceptually easy to program in, providing a useful framework for the subdivision of large problems into manageable pieces. This property is essential for the rapid and reliable\r\nimplementation of large software systems.</p>\r\n\r\n<p>Variable polymorphism refers to the ability of variables to change types at runtime. This is in contradistinction to typelessness (as in BLISS) where variables have no types associated with them. In most common languages,\r\nthe programmer must declare the types of all the variables he uses; these types are then static throughout the execution of the program. Declarations allow the compiler to produce efficient code and to identify errors whose\r\ndetection must other-wise be deferred until runtime; however, they sacrifices a good deal of the generality which is possible with less stringent variable\r\nbinding schemes. On the other hand, languages which don't require declarations, and which allow variables to change types, such as SNOBOL and LISP, provide this generality by virtue of their extremely late binding, but thereby sacrifice efficiency.</p>\r\n\r\n<p>SMALLTALK is perhaps the purest language which embodies both object-orientedness and declarationlessness. Unfortunately, these two features, while of great benefit in increasing programmer productivity and program\r\nreliability, suffer heavily from the point of view of runtime efficiency.</p>\r\n\r\n<p>The project is to investigate ways to obtain the undeniable advantages of polymorphism and object-orientedness, without sacrificing runtime\r\nefficiency. More specifically, the goal is to build a compiler for a dialect of SMALLTALK for the VAX under UNIX (Berkeley 4.1bsd), which incorporates data-flow type inference algorithms enabling it to produce executable\r\nprograms of an efficiency comparable to that of programs produced by compilers for more traditional but less powerful languages.</p>\r\n\r\n<p>The optimization methods are described, test results are examined, and indications of future directions are given.</p>"
    },
    {
        "name": "Lam, Jimmy Kwok-Ching",
        "degree": "Masters",
        "year": "1983",
        "title": "RTsim: A Register Transfer Simulator",
        "advisor": "Bryant, Randal E.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04112012-091046970",
        "creators": [
            {
                "name": {
                    "family": "Lam",
                    "given": "Jimmy Kwok-Ching"
                },
                "id": "Lam-Jimmy-Kwok-Ching",
                "display_name": "Lam, Jimmy Kwok-Ching"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Bryant",
                    "given": "Randal E."
                },
                "id": "Bryant-R",
                "role": "advisor",
                "display_name": "Bryant, Randal E."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/727m-mf30",
        "abstract": "The growing complexity and size of VLSI processors are demanding extremely accurate, simulation facilities for microcode debugging, logic verification, and system integration. However, reliance on mask iterations to remedy problems on a chip not only raises costs, but also extends the design cycle. Simulation justifies itself in both the turn around time and the design cost. Gate level simulation is one method for reducing errors in a chip design. However, gate level simulation of large designs are extremely expensive, and sometimes impossible when the gate level representation is not known. This thesis attempts to solve this problem by providing a functional modeling language, a reconfigurable assembler, and a functional simulation program. Mixed-level simulation capability is also provided by allowing the replacement of a functional unit by a transistor network which is being simulated by a switch-level logic simulator."
    },
    {
        "name": "Ng, Charles Hok-Bun",
        "degree": "Masters",
        "year": "1983",
        "title": "FIFO Buffering Transceiver: A Communication Chip Set for Multiprocessor Systems",
        "advisor": "Seitz, Charles L.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04132012-082850723",
        "creators": [
            {
                "name": {
                    "family": "Ng",
                    "given": "Charles Hok-Bun"
                },
                "id": "Ng-Charles-Hok-Bun",
                "display_name": "Ng, Charles Hok-Bun"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "advisor",
                "display_name": "Seitz, Charles L."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/vdzd-7h35",
        "abstract": "<p>This thesis describes a family of VLSI chips designed to link a number of processors on a one-to-one basis. With these chips as communication system building blocks, a complex multiprocessor system can be built. Inter-processor communication within the multiprocessor system is accomplished by passing messages composed of data packets.</p>\r\n\r\n<p>The resulting chip, called a First-in-first-out Buffering Transceiver (FIBT), provides a full duplex communication channel between any two processors. FIFO queues are provided for buffering data on each communication channel. FIBT accepts data packets from the host processor via a parallel data bus and serially sends them out to the destined processor. FIBT handshakes with the processor by using asynchronous interrupt signals.</p>\r\n\r\n<p>Linkage between any two FIBTs is accomplished by using only two wires. Both data bits and handshaking signals are sent by these two lines. The FIBT system is neither a synchronous nor an asynchronous one; instead, it is an \"one-clock-different-phases\" system. A clock signal sets up the frequency reference; the start and stop bits set up the phase reference.</p>\r\n\r\n<p>Finally, FIBT is implemented in nMOS technology. The design of the circuit is discussed in detail. The design is generalized enough so that data packets of various sizes can be handled. The layout of the chip is coded in an integrated circuit descriptive language. Any member of the family of chips can be obtained by changing three basic parameters. Techniques used in verifying the circuit are shown, and several observations about VLSI design are offered.</p>"
    },
    {
        "name": "Trawick, David James",
        "degree": "PhD",
        "year": "1983",
        "title": "Robust Sentence Analysis and Habitability",
        "advisor": "Thompson, Frederick B.",
        "url": "https://resolver.caltech.edu/CaltechETD:etd-11032005-154728",
        "creators": [
            {
                "name": {
                    "family": "Trawick",
                    "given": "David James"
                },
                "id": "Trawick-David-James",
                "display_name": "Trawick, David James"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Thompson",
                    "given": "Frederick B."
                },
                "id": "Thompson-F-B",
                "role": "advisor",
                "display_name": "Thompson, Frederick B."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Thompson",
                    "given": "Frederick B."
                },
                "id": "Thompson-F-B",
                "role": "chair",
                "display_name": "Thompson, Frederick B."
            },
            {
                "name": {
                    "family": "Kajiya",
                    "given": "James Thomas"
                },
                "id": "Kajiya-J-T",
                "role": "member",
                "display_name": "Kajiya, James Thomas"
            },
            {
                "name": {
                    "family": "Mead",
                    "given": "Carver"
                },
                "id": "Mead-C-A",
                "orcid": "0000-0003-4051-0462",
                "role": "member",
                "display_name": "Mead, Carver"
            },
            {
                "name": {
                    "family": "Thompson",
                    "given": "Bozena H."
                },
                "id": "Thompson-B-H",
                "role": "member",
                "display_name": "Thompson, Bozena H."
            },
            {
                "name": {
                    "family": "Tschoegl",
                    "given": "Nicholas W."
                },
                "id": "Tschoegl-N-W",
                "role": "member",
                "display_name": "Tschoegl, Nicholas W."
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/re17-h091",
        "abstract": "<p>Systems for using subsets of English with computers have progressed much in the area of linguistic coverage of well-formed sentences for a specific task. Some methods have also been devised for the treatment of input that is almost well-formed.   Nevertheless, it is still quite easy to stray over the bounds imposed by current natural language systems. Without proper diagnosis, this leads to interactive systems that are not habitable, i.e., systems that are not pleasant to use because they are not able to perform up to the user's expectations.</p>\r\n\r\n<p>This thesis presents an overall system for the treatment of several areas normally outside the limit of natural language systems, and for the diagnosis of any input. The system, Robust Sentence Analysis, includes procedures for handling ambiguous input, resolving input with anaphors (e.g. pronouns), making several kinds of major and minor corrections to input, and the interaction of all of these areas. The system does not treat every aspect of these methods of human interaction, but does provide for the more prevalent forms as found in simulations of user interaction in several modes: face-to-face, terminal-to-terminal, and human-to-computer (using a previously implemented natural language system). Thus the system incorporates the most likely forms found in human performance. Diagnostics are designed to lead the user back into the boundaries of the system.</p>\r\n\r\n<p>The Robust Sentence Analysis system is implemented as a part of the ASK System, <u>A</u> <u>S</u>imple <u>K</u>nowledgeable System.</p>"
    },
    {
        "name": "Kingsley, Christopher Hayden",
        "degree": "Masters",
        "year": "1982",
        "title": "EARL: An Integrated Circuit Design Language",
        "advisor": "Unknown, Unknown",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04112012-082810035",
        "creators": [
            {
                "name": {
                    "family": "Kingsley",
                    "given": "Christopher Hayden"
                },
                "id": "Kingsley-Christopher-Hayden",
                "display_name": "Kingsley, Christopher Hayden"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/z452-0r86",
        "abstract": "No abstract."
    },
    {
        "name": "Lang, Charles Richard, Jr.",
        "degree": "PhD",
        "year": "1982",
        "title": "The Extension of Object-Oriented Languages to a Homogeneous, Concurrent Architecture",
        "advisor": "Seitz, Charles L.",
        "url": "https://resolver.caltech.edu/CaltechETD:etd-09142006-085516",
        "creators": [
            {
                "name": {
                    "family": "Lang",
                    "given": "Charles Richard, Jr."
                },
                "id": "Lang-Charles-Richard",
                "display_name": "Lang, Charles Richard, Jr."
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "advisor",
                "display_name": "Seitz, Charles L."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Bryant",
                    "given": "Randy"
                },
                "id": "Bryant-R",
                "role": "chair",
                "display_name": "Bryant, Randy"
            },
            {
                "name": {
                    "family": "Fox",
                    "given": "Geoffrey C."
                },
                "id": "Fox-G-C",
                "role": "member",
                "display_name": "Fox, Geoffrey C."
            },
            {
                "name": {
                    "family": "Johnsson",
                    "given": "S. Lennart"
                },
                "id": "Johnsson-S-Lennart",
                "role": "member",
                "display_name": "Johnsson, S. Lennart"
            },
            {
                "name": {
                    "family": "Kajiya",
                    "given": "James Thomas"
                },
                "id": "Kajiya-J-T",
                "role": "member",
                "display_name": "Kajiya, James Thomas"
            },
            {
                "name": {
                    "family": "Martin",
                    "given": "Alain J."
                },
                "id": "Martin-A-J",
                "role": "member",
                "display_name": "Martin, Alain J."
            },
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "member",
                "display_name": "Seitz, Charles L."
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/9EVC-2X08",
        "abstract": "<p>A homogeneous machine architecture, consisting of a regular interconnection of many identical elements, exploits the economic benefits of VLSI technology. A concurrent programming model is presented that is related to object oriented languages such as Simula and Smalltalk. Techniques are developed which permit the execution of general purpose object oriented programs on a homogeneous machine. Both the hardware architecture and the supporting software algorithms are demonstrated to scale their performance with the size of the system.</p>\r\n\r\n<p>The program objects communicate by passing messages. Objects may move about in the system and may have an arbitrary pointer topology. A distributed, on-the-fly garbage collection algorithm is presented which operates by message passing. Simulation of the algorithm demonstrates its ability to collect obsolete objects over the entire machine with acceptable overhead costs. Algorithms for maintaining the locality of object references and for implementing a virtual object capability are also presented.</p>\r\n\r\n<p>To insure the absence of hardware bottlenecks, a number of interconnection strategies are discussed and simulated for use in a homogeneous machine. Of those considered, the Boolean N-cube connection is demonstrated to provide the necessary characteristics.</p>\r\n\r\n<p>The object oriented machine will provide increased performance as its size is increased. It can execute a general purpose, concurrent, object oriented language where the size of the machine and its interconnection topology are transparent to the programmer.</p>"
    },
    {
        "name": "Whiting, Douglas Lee",
        "degree": "Masters",
        "year": "1982",
        "title": "A Self-Timed Chip Set for Microprocessor Communication",
        "advisor": "Seitz, Charles L.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04122012-110450092",
        "creators": [
            {
                "name": {
                    "family": "Whiting",
                    "given": "Douglas Lee"
                },
                "id": "Whiting-Douglas-Lee",
                "display_name": "Whiting, Douglas Lee"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "advisor",
                "display_name": "Seitz, Charles L."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/tnv1-t713",
        "abstract": "<p>This paper describes a family of chips used to link multiple processors together on a speed-independent communication bus. Sendership arbitration is included as an integral part of the signalling scheme, incurring very little overhead and providing a measure of fairness. The protocol allows for one-to-many communication in which the sender must wait for all receivers to respond to each datum transmitted. The width of the data bus is arbitrary, and only three control wires are necessary for normal transmission cycles. In order to alleviate congestion, the global bus may be divided into several local buses by a method which is entirely transparent to the processor software. Thus the bus topology may be reconfigured for each processing network using these chips as building blocks.</p>\r\n\r\n<p>Functional verification of speed-independent circuits is also discussed. The problem is seen to be very complex, but some conclusions are drawn about the type of tools which will be helpful in implementing self-timed systems.</p>"
    },
    {
        "name": "Gray, Moshe",
        "degree": "Masters",
        "year": "1981",
        "title": "The Design and Implementation of a Reticle Maker for VLSI",
        "advisor": "Unknown, Unknown",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:03122018-162127158",
        "creators": [
            {
                "name": {
                    "family": "Gray",
                    "given": "Moshe"
                },
                "id": "Gray-Moshe",
                "display_name": "Gray, Moshe"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "None",
                    "given": "None"
                },
                "display_name": "None, None"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/0v5p-7011",
        "abstract": "This paper describes the designing and building of a feedback controlled Reticle Maker for the VLSI industry. The machine is based on an innovative design of an XY photo plotter which utilizes flexures and linear motors as a means to raster scan a  photographic plate. The accuracy of the machine is based on Laser Interferometery and feedback control. "
    },
    {
        "name": "Johannsen, David Lawrence",
        "degree": "PhD",
        "year": "1981",
        "title": "Silicon Compilation",
        "advisor": "Mead, Carver",
        "url": "https://resolver.caltech.edu/CaltechETD:etd-11092006-140405",
        "creators": [
            {
                "name": {
                    "family": "Johannsen",
                    "given": "David Lawrence"
                },
                "id": "Johannsen-David-Lawrence",
                "display_name": "Johannsen, David Lawrence"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Mead",
                    "given": "Carver"
                },
                "id": "Mead-C-A",
                "orcid": "0000-0003-4051-0462",
                "role": "advisor",
                "display_name": "Mead, Carver"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Mead",
                    "given": "Carver"
                },
                "id": "Mead-C-A",
                "orcid": "0000-0003-4051-0462",
                "role": "chair",
                "display_name": "Mead, Carver"
            },
            {
                "name": {
                    "family": "Thompson",
                    "given": "Frederick B."
                },
                "id": "Thompson-F-B",
                "role": "co-chair",
                "display_name": "Thompson, Frederick B."
            },
            {
                "name": {
                    "family": "Kajiya",
                    "given": "James Thomas"
                },
                "id": "Kajiya-J-T",
                "role": "member",
                "display_name": "Kajiya, James Thomas"
            },
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "member",
                "display_name": "Seitz, Charles L."
            },
            {
                "name": {
                    "family": "Ray",
                    "given": "Charles B."
                },
                "id": "Ray-Charles-B",
                "role": "member",
                "display_name": "Ray, Charles B."
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/32ha-8453",
        "abstract": "<p>Modern integrated circuits are among the most complex systems designed by man. Although we have seen a rapid increase in fabrication technology, traditional design methodologies have not evolved at a rate commensurate with the increasing design complexity potential. These circuit design methodologies fail when applied to Very Large Scale Integrated (VLSI) circuit design. This thesis proposes a new design methodology which manages the complexity VLSI design, allowing economical generation of correctly functioning circuits.</p>\r\n\r\n<p>Cost is one measurement of a design methodology's value. A good design methodology rapidly and efficiently translates high level system specifications into working parts. Traditional techniques partition the translation process into many steps; each design tool is focused upon one of these design steps. This partitioning precludes the consideration of global constraints, and introduces a literal explosion of data being transfered between design steps. The design process becomes error-prone and time consuming.</p>\r\n\r\n<p>The technique of silicon compilation presented in this thesis automatically translates from high level specifications into correct geometric descriptions. In this approach, the designer interacts at a high level of abstraction, and need not be concerned with lower levels of detail, facilitating exploration of alternate system architectures. Furthermore, since the implementation is algorithmically generated, chip descriptions can be made correct by construction. Finally, the user is given technology independence, because the high level specification need not require knowledge of fabrication details. This flexibility allows the user to take advantage of technology advances.</p>\r\n\r\n<p>This thesis explores various aspects of silicon compilation, and presents a prototype compiler, Bristle Blocks. The methodology is demonstrated through the design of several chips. The practicality of the methodology results from the concern for efficiency of the design process and of the chip designs produced by the system.</p>"
    },
    {
        "name": "Lien, Sheue-Ling C.",
        "degree": "Masters",
        "year": "1981",
        "title": "Toward a Theorem Proving Architecture",
        "advisor": "Unknown, Unknown",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04122012-090812718",
        "creators": [
            {
                "name": {
                    "family": "Lien",
                    "given": "Sheue-Ling C."
                },
                "id": "Lien-Sheue-Ling-C",
                "display_name": "Lien, Sheue-Ling C."
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/ctky-sp95",
        "abstract": "No abstract."
    },
    {
        "name": "Lin, Tzu-Mu",
        "degree": "Masters",
        "year": "1981",
        "title": "From Geometry to Logic",
        "advisor": "Mead, Carver",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04122012-091736952",
        "creators": [
            {
                "name": {
                    "family": "Lin",
                    "given": "Tzu-Mu"
                },
                "id": "Lin-Tzu-Mu",
                "display_name": "Lin, Tzu-Mu"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Mead",
                    "given": "Carver"
                },
                "id": "Mead-C-A",
                "orcid": "0000-0003-4051-0462",
                "role": "advisor",
                "display_name": "Mead, Carver"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/887g-zn84",
        "abstract": "<p>Transformation between five different intermediate forms used in VLSI design are discussed. The intermediate forms are: the D language, Akers' Diagrams, transistor listings, the sticks standard, and CIF language. They represent architecture, logic, transistor, topology and geometric levels, respectively. To understand more about the relationships between these levels, a series of transformations from the CIF to the sticks standard, from the sticks standard to the transistor listing, and from the transistor listing to the Akers' Diagram are presented. By doing this, the description gap between the logical world and the physical world is bridged.</p>\r\n\r\n<p>CAD developers often complain about the lack of a model that can be applied uniformly throughout the entire design process. Akers' Diagrams seem to meet this demand. This work highlights this point.</p>\r\n\r\n<p>As an example, a shift register implemented in NMOS technology will appear many times in this thesis.</p>"
    },
    {
        "name": "Mosteller, Richard Craig",
        "degree": "Masters",
        "year": "1981",
        "title": "REST: A Leaf Cell Design System",
        "advisor": "Kajiya, James Thomas",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04122012-162654185",
        "creators": [
            {
                "name": {
                    "family": "Mosteller",
                    "given": "Richard Craig"
                },
                "id": "Mosteller-Richard-Craig",
                "display_name": "Mosteller, Richard Craig"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Kajiya",
                    "given": "James Thomas"
                },
                "id": "Kajiya-J-T",
                "role": "advisor",
                "display_name": "Kajiya, James Thomas"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/1r9d-ad60",
        "abstract": "This thesis describes a leaf cell design system, REST, Richard's Editor for Sticks. REST is intended to be used for the preparation of the lowest level cells in an integrated circuit design. A stick notation is used in the editing process. Given a structured design methodology any design task can be separated into two parts: 1) leaf cell design and 2) composition cell design. This tool addresses the first of these tasks, although it may also be used for general manipulation of stick diagrams. A table driven compaction algorithm is presented. This graph based algorithm uses a weighted affinity factor to reduce total polysilicon and diffusion wire length. A suite of utilities provide functions such as file interface, physical mapping, annotation, etc. consistent with a set of design rules. The system has been implemented in Simula on a DEC 20 computer, and works in conjunction with a limited functional diagramming system. The design rules, models and stick interpretation are table driven and can be changed for various technologies. Currently REST is being used for NMOS technology. A community of users have used the REST system to prepare a number of designs resulting in a substantial reduction of design time. In addition, the system is currently being used at a major computer manufacturer in conjunction with a VLSI design course."
    },
    {
        "name": "S\u00e9gal, Richard Lawrence",
        "degree": "Masters",
        "year": "1981",
        "title": "Structure, Placement and Modelling",
        "advisor": "Unknown, Unknown",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04132012-091556662",
        "creators": [
            {
                "name": {
                    "family": "S\u00e9gal",
                    "given": "Richard Lawrence"
                },
                "id": "S\u00e9gal-Richard-Lawrence",
                "display_name": "S\u00e9gal, Richard Lawrence"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/tb24-mg70",
        "abstract": "<p>The nature of hierarchical design tools for VLSI implementation is explored in\r\nterms of the \"Caltech Structured Design Philosophy\" as interpreted by Rowson in his\r\ndoctoral thesis [Rowson]. One obvious implication of this thesis is the desirability\r\nof tools for leaf and composition cell design. This thesis describes one such tool\r\ntargeted at the composition cell design problem. It is intended to be used in the\r\narchitectual phases of a design and allows structural (interface specification),\r\nphysical (floor planing), and behavioral (simulation modelling) descriptions to be\r\nwritten down, integrated, and tested. One biproduct of this process is the\r\ngeneration or a comprehensive design document from which workbooks can be\r\ngenerated automatically.</p>\r\n\r\n<p>The later sections describe a hierarchical simulator and how it fits into the\r\nstep-wise refinement process of design. The most important considerations in the\r\ndesign of this simulator were ease of expression and the provision of enough\r\ngenerality to allow the specification of any VLSI structure. Simulation takes place\r\nin a time axis/delay environment and uses a system in which nodes may take one of\r\nfour values or states. This allows a high level simulation in which physical devices\r\nare replaced by register transfer type operations. Data is altered and moved around\r\nusing flow control mechanisms, logical and mathematical operations, and various\r\nmeans of specifying delay. Though not necessary or typical it is possible to model\r\nactual devices as ideal switches using these techniques. It is a multi-model\r\nsimulation because simulation can occur at any level or design abstraction. Several\r\nexamples are given including the modelling or the GR2 stack data microprocessor\r\nwhich was recently fabricated in NMOS.</p>"
    },
    {
        "name": "Whelan, Daniel Steven",
        "degree": "Masters",
        "year": "1981",
        "title": "A Versatile Ethernet Interface",
        "advisor": "Kajiya, James Thomas",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04122012-112531771",
        "creators": [
            {
                "name": {
                    "family": "Whelan",
                    "given": "Daniel Steven"
                },
                "id": "Whelan-Daniel-Steven",
                "display_name": "Whelan, Daniel Steven"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Kajiya",
                    "given": "James Thomas"
                },
                "id": "Kajiya-J-T",
                "role": "advisor",
                "display_name": "Kajiya, James Thomas"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/x4t9-5n88",
        "abstract": "No abstract."
    },
    {
        "name": "Whitney, Telle",
        "degree": "Masters",
        "year": "1981",
        "title": "A Hierarchical Design Rule Checker",
        "advisor": "Unknown, Unknown",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04122012-100224959",
        "creators": [
            {
                "name": {
                    "family": "Whitney",
                    "given": "Telle"
                },
                "id": "Whitney-T",
                "display_name": "Whitney, Telle"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/dqz1-c122",
        "abstract": "<p>This thesis describes a new approach to the problem of Geometrical Design Rule Checking (DRC). Previous DRC implementations have dealt with fully instantiated geometrical artwork. As the complexity of VLSI increases, it becomes infeasible to analyze the vast amounts of information present in a fully instantiated design. The\r\nDRC algorithm presented here introduces an approach that exploits the structural\r\nhierarchy of a design in order to reduce the computational complexity of the\r\ngeometrical tests that need to be made. The technique described is also applicable to\r\nother types of design checking such as circuit extraction, functional verification\r\nand electrical rule verification.</p>\r\n\r\n<p>A new DRC algorithm has been developed that, by making use of the structure\r\ninherent in a hierarchical design, eliminates many redundant design rule checks.\r\nIn this approach there are two places where possible design rule violations may\r\noccur. The first is within a symbol definition. The second is the area where two\r\nsymbols interact. The algorithm checks a given definition only once, and then examines how interactions within each new environment where the definition is placed modify the original definition. A note is made after each interaction has been scrutinized, so that a duplicate situation will not be rechecked.</p>\r\n\r\n<p>An implementation of the hierarchical DRC algorithm has been written at Caltech.\r\nThis implementation extracts a minimal number of pairwise geometrical\r\ncomparisons needed to check the entire design. The program accepts as in put a\r\ndesign description in the Caltech Intermediate Form (CIF). The output of the program is currently a fully instantiated version of those portions of the geometry\r\nthat need to be checked in order to check the entire design.</p>\r\n\r\n<p>A means of expressing the designer's intent through the design description is\r\nrequired. Current DRC's deal with geometrical artwork exclusively. Most of the\r\ndifficult design rules are involved in the checking of devices. Rather than\r\nrestricting the designer to the use of geometry, the idea of a primitive element is\r\nintroduced. A primitive element is defined to be anything that cannot be broken\r\ndown into sub-elements. A design defined using primitive elements conveys more\r\nof the functional structure than a purely geometric definition.</p>\r\n\r\n"
    },
    {
        "name": "Barton, Anthony Francis",
        "degree": "PhD",
        "year": "1980",
        "title": "A Fault Tolerant Integrated Circuit Memory",
        "advisor": "Seitz, Charles L.",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:03212012-110600634",
        "creators": [
            {
                "name": {
                    "family": "Barton",
                    "given": "Anthony Francis"
                },
                "id": "Barton-Anthony-Francis",
                "display_name": "Barton, Anthony Francis"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "advisor",
                "display_name": "Seitz, Charles L."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/dr7k-qn11",
        "abstract": "<p>Most commercially produced integrated circuits are incapable of\r\ntolerating manufacturing defects. The area and function of the\r\ncircuits is thus limited by the probability of faults occurring\r\nwithin the circuit. This thesis examines techniques for using\r\nredundancy in memory circuits to provide fault tolerance and to\r\nincrease storage capacity.</p>\r\n\r\n<p>A hierarchical memory architecture using multiple Hamming codes\r\nis introduced and analysed to determine its resistance to\r\nmanufacturing defects. The results of the analysis indicate that\r\nsubstantial yield improvement is possible with relatively modest\r\nincreases in circuit area. Also, the architecture makes it possible\r\nto build larger memory circuits than is economically feasible\r\nwithout redundancy.</p>"
    },
    {
        "name": "Browning, Sally Anne",
        "degree": "PhD",
        "year": "1980",
        "title": "The Tree Machine: A Highly Concurrent Computing Environment",
        "advisor": "Mead, Carver",
        "url": "https://resolver.caltech.edu/CaltechETD:etd-12082006-153626",
        "creators": [
            {
                "name": {
                    "family": "Browning",
                    "given": "Sally Anne"
                },
                "id": "Browning-Sally-Anne",
                "display_name": "Browning, Sally Anne"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Mead",
                    "given": "Carver"
                },
                "id": "Mead-C-A",
                "orcid": "0000-0003-4051-0462",
                "role": "advisor",
                "display_name": "Mead, Carver"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/15zs-9x82",
        "abstract": "An architecture for a VLSI multiprocessor machine is proposed. The processors are connected together as a binary tree. A collection of algorithms are mapped onto the tree machine. These include heap sort transitive closure, the travelling salesman, and matrix inversion, among others. A model of computational complexity for the tree machine is suggested, and the algorithms are analyzed in the context of that model. A notation for expressing the algorithms is described, a processor design is proposed, and a compiler for the notation and processor is presented."
    },
    {
        "name": "Demetrescu, Stefan Gabriel",
        "degree": "Masters",
        "year": "1980",
        "title": "A VLSI Based Real-Time Hidden Surface Elimination Display System",
        "advisor": "Unknown, Unknown",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:04092012-133954577",
        "creators": [
            {
                "name": {
                    "family": "Demetrescu",
                    "given": "Stefan Gabriel"
                },
                "id": "Demetrescu-Stefan-Gabriel",
                "display_name": "Demetrescu, Stefan Gabriel"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/Z9GF0RGD",
        "abstract": "<p>This thesis describes a novel approach to the problem of generating dynamic TV raster displays for real-time simulation (such as for visual flight simulation). In particular, the most time consuming part of generating such displays, the hidden surface elimination, is performed using many identical custom VLSI processors. Each processor is assigned a surface and, for each pixel, all processors compete to decide which object is visible.</p>\r\n\r\n<p>It is found that this approach leads to a practical system which is conceptually and practically simple, expandible, and reliable.</p>"
    },
    {
        "name": "Hess, Gideon David",
        "degree": "PhD",
        "year": "1980",
        "title": "A Software Design System",
        "advisor": "Thompson, Frederick B.",
        "url": "https://resolver.caltech.edu/CaltechETD:etd-10182006-082833",
        "creators": [
            {
                "name": {
                    "family": "Hess",
                    "given": "Gideon David"
                },
                "id": "Hess-Gideon-David",
                "display_name": "Hess, Gideon David"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Thompson",
                    "given": "Frederick B."
                },
                "id": "Thompson-F-B",
                "role": "advisor",
                "display_name": "Thompson, Frederick B."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/Z9348HB7",
        "abstract": "<p>The goal of the research described in this thesis was to build a system that supports, without interfering with, the activity of systematic software design and takes upon itself mechanical activities the designer can be spared.</p>\r\n\r\n<p>Two of the main activities which constitute the process of software creation are:<br />\r\n1.Designing a solution to the problem. <br />\r\n2. Implementing the design.</p>\r\n\r\n<p>The activity of design has to be performed by the programmer himself, it can only be aided by the computer. Producing a program from a complete design is a mechanical activity the computer can take upon itself.</p>\r\n\r\n<p>These observations lead to the following objectives that a software design system should meet:<br />\r\n1. Providing tools that support the design activity and enable maximum flexibility.<br />\r\n2. Recognizing the lowest level primitives of the design as the target language and producing the program in this language.</p>\r\n\r\n<p>A system along these guidelines was implemented. It permits the user to write definitions which refine high level design decisions into lower levels and, at the same time, serve as syntax descriptions and translation rules for the languages used in the design.</p>\r\n\r\n<p>The system operates in two user-controlled passes. In the first pass the user's definitions are read, either interactively or from external files, and the syntax rules are stored in a dictionary. In the second pass a syntax driven language processor uses the dictionary to compile the user's program into the target language which consists of the lowest level constructs of the design.</p>\r\n\r\n<p>Due to the freedom the programmer has in design, several kinds of syntactic ambiguities may be introduced with - or without - the user's attention. Unless caused by user errors, the translator tries to resolve these ambiguities to match the designers intentions.</p>\r\n\r\n<p>In order to reduce the amount of time and space required for parsing, long texts are divided into subtexts which are translated separately. Guidance as to which subtexts are separately translatable is provided by the user in a natural way by composing the design of statements.</p>\r\n\r\n<p>A command language enables the user to control the passes, to look at the contents of the dictionary and of external files, to monitor the translation process for debugging purposes, to store dictionaries for later use and retrieve them and to modify special symbols used in definitions.</p>\r\n\r\n<p>The system is implemented in Simula. A second system is presently being implemented as part of POL (Problem Oriented Language), a system for writing and using application languages. POL's metalanguage enables the user to build - or extend object languages by writing new syntax rules. The tools of the development system described above are incorporated into the metalanguage in order to aid the application programmer in the design and compilation of the semantic routines of these rules.</p>"
    },
    {
        "name": "Lang, Charles Richard",
        "degree": "Masters",
        "year": "1980",
        "title": "Automated Wiring Analysis of Integrated Circuit Geometric Data",
        "advisor": "Seitz, Charles L.",
        "url": "https://resolver.caltech.edu/CaltechThesis:03092018-151643742",
        "creators": [
            {
                "name": {
                    "family": "Lang",
                    "given": "Charles Richard"
                },
                "id": "Lang-Charles-Richard",
                "display_name": "Lang, Charles Richard"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Seitz",
                    "given": "Charles L."
                },
                "id": "Seitz-C-L",
                "role": "advisor",
                "display_name": "Seitz, Charles L."
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "None",
                    "given": "None"
                },
                "display_name": "None, None"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/qxbg-2c10",
        "abstract": "<p>Methods are presented by which wiring data of an NMOS integrated circuit may be extracted from its mask information. The procedures involved utilize the capabilities of a general purpose polygon package. The polygon operations are defined to enhance their use in this application, however the package is suitable for other uses such as, design rule checking. The analysis is performed on hierarchical symbol definitions of mask geometry. The geometry is presumed to be described in CIF 2.0 (Caltech Intermediate Form). The analysis attempts to recognize three basic types of structures in the geometry: </p>\r\n<p>\r\n1)\tTransistor devices (and capacitors) <br />\r\n2)\tLocal interconnection structures and <br />\r\n3)\tGlobal interconnection structures</p>\r\n\r\n<p>Definitions are put forth for the distinction of global and local wires. The data extracted from the symbol geometry is the percent utilization of each symbol's area by each of the three types of structures. The purpose behind the extraction of this data is its use in the development and evaluation of wiring models for custom NMOS IC design. Two approaches are presented which extract such data. The first is heuristic and depends on built-in assumptions of how the NMOS process is generally used. This technique loses accuracy if a design style falls outside of these assumptions. The second technique is a method by which the topology of design may be extracted from the geometry. The geometric objects, from which devices and interconnections are made, are preserved, such that the wiring information can be obtained precisely. This method is complex and requires considerable computation, however, the topology extracted may also be used to verify the geometric data against the original design topology.</p>"
    },
    {
        "name": "Rowson, James Allely",
        "degree": "PhD",
        "year": "1980",
        "title": "Understanding Hierarchical Design",
        "advisor": "Mead, Carver",
        "url": "https://resolver.caltech.edu/CaltechETD:etd-12062006-104710",
        "creators": [
            {
                "name": {
                    "family": "Rowson",
                    "given": "James Allely"
                },
                "id": "Rowson-James-Allely",
                "display_name": "Rowson, James Allely"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Mead",
                    "given": "Carver"
                },
                "id": "Mead-C-A",
                "orcid": "0000-0003-4051-0462",
                "role": "advisor",
                "display_name": "Mead, Carver"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/Z9BP00R2",
        "abstract": "With the exponential improvement in integrated circuit technology comes the problem of how to design systems containing millions of devices. This thesis presents a new look at hierarchical design based on the Caltech structured design methodology.\r\n\r\nThe hierarchy is separated into two parts: leaf cells, containing no instances of other cells, and composition cells, containing only instances of other cells. A leaf cell can be implemented in many different representations. A representation consists of a set of leaf cells and a composition rule that builds correct higher level cells.\r\n\r\nThe separated hierarchy is suitable for mathematical analysis by the use of Curry's theory of combinators. In this form, a hierarchy is represented by a mathematical operator that produces a digital system from the leaf cells. The question of hierarchical equivalence is examined.\r\n\r\nThree sample composition rules, or algorithms, are presented as examples. The SLAP system provides a geometry composition rule that produces the mask description of a system given the geometries of the leaf cells. In analogy to TYPEing in a programming language, two representations that enforce a certain design style are discussed. The first TYPE system guarantees signal integrity. The second TYPE system guarantees mutual exclusion between the sources on a bus."
    },
    {
        "name": "Seiler, Larry Dean",
        "degree": "Masters",
        "year": "1980",
        "title": "A Pascal Machine Architecture Implemented in Bristle Blocks, a Prototype Silicon Computer",
        "advisor": "Mudge, J. Craig",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:03122018-143833053",
        "creators": [
            {
                "name": {
                    "family": "Seiler",
                    "given": "Larry Dean"
                },
                "id": "Seiler-Larry-Dean",
                "display_name": "Seiler, Larry Dean"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Mudge",
                    "given": "J. Craig"
                },
                "id": "Mudge-J-C",
                "role": "advisor",
                "display_name": "Mudge, J. Craig"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/Z9VH5KTT",
        "abstract": "<p>This thesis presents the multi-chip design of an architecture which directly implements the\r\nlanguage Pascal. The design uses custom VLSl rather than standard chips in order to\r\nincrease speed and reduce the number of chips needed.</p>\r\n\r\n<p>The integrated circuits comprising the architecture are designed using Bristle Blocks, a chip\r\ndesign tool developed at Caltech by Dave Johannsen (6).  Bristle Blocks is called a silicon\r\ncompiler because it will put together an entire integrated circuit from a high level description\r\nof its function. Bristle Blocks can be used to design datapath processor chips, where\r\nexternal microcode is used to control operations on data busses inside the chip.</p>\r\n\r\n<p>The Pascal machine architecture presented here is based on the EM-1 instruction set\r\ndesigned by Andrew Tannenbaum (11,13). The EM-1 instruction set is intended to allow\r\nefficient compilation of stack-based, high level languages. Tannenbaum supplies static\r\nfrequency data which is used heavily in making design decisions in the Pascal machine\r\narchitecture.</p>\r\n\r\n<p>VLSl design has several important differences from design using standard components. A\r\nlarge amount of function can be placed on a single chip, e.g., approximately 30,000\r\ntransistors on the Intel 8086, but only a small number of pins are available for off-chip\r\ncommunication (typically 64 or less). This requires designs to be highly modular. In the\r\nNMOS technology used at Caltech, driving signals off-chip takes up to ten times the time and\r\nenergy of on-chip communication. This requires inter-chip communication to be limited as\r\nmuch as possible. Finally, the large amount of computing power available in VLSl\r\nencourages the use of concurrency to gain execution speed.</p>\r\n\r\n<p>This thesis is structured as follows. The thesis begins with a section defining the principles\r\nto be followed in designing the Pascal system architecture. Following that are sections\r\ndescribing Bristle Blocks and the EM-1 architecture. Next, the overall architecture of the\r\nPascal machine is described, followed by sections detailing the system data busses, the\r\ncommon elements in the processors which make up the system, and the processors\r\nthemselves. A conclusion section summarizes the work, provides a brief critique of Bristle\r\nBlocks, and includes recommendations for further work. Finally, the appendices document\r\nthe Bristle Blocks datapath elements and the EM-1 instruction set.</p>"
    },
    {
        "name": "Ayres, Ronald Frederick",
        "degree": "PhD",
        "year": "1979",
        "title": "A Language Processor and a Sample Language",
        "advisor": "Unknown, Unknown",
        "url": "https://resolver.caltech.edu/CaltechTHESIS:10072021-184918786",
        "creators": [
            {
                "name": {
                    "family": "Ayres",
                    "given": "Ronald Frederick"
                },
                "id": "Ayres-Ronald-Frederick",
                "display_name": "Ayres, Ronald Frederick"
            }
        ],
        "advisors": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "committee": [
            {
                "name": {
                    "family": "Unknown",
                    "given": "Unknown"
                },
                "display_name": "Unknown, Unknown"
            }
        ],
        "option_major": [
            "compsci"
        ],
        "doi": "10.7907/r2hy-6x63",
        "abstract": "<p>This thesis explores shared data in list structures and ambiguity in language processing. Tolerance of ambiguity is necessary to support clear and modular expression. Data sharing is necessary to support ambiguity efficiently. Data sharing is useful also in compiled programs to save memory and time.</p>\r\n\r\n<p>Let us define some terms. A rewrite grammar is a set of replacement rules each of which specifies that a given phrase may be replaced by another given phrase. Each replacement rule expresses a local translation. A parser finds those sequences of replacements that bring a given text to a machine handleable form. Each such sequence represents a meaning or interpretation for the given text. Tolerance of ambiguity or multiple interpretations for a given text is necessary so that subsequent processing can place further constraints upon the input text.</p> \r\n\r\n<p>This thesis presents a parser which efficiently, handles general-rewrite grammars. To conserve computer time and memory, only essential differences among multiple interpretations are represented and processed. If several interpretations for a given text are valid, the parser yields a meaning which represents the ambiguity as, locally as possible. Even an exponential number of distinct meanings may be represented in a polynomial amount of memory.</p>\r\n\r\n<p>This thesis also presents a language processing system which supports semantic processing via independent rewrite grammars. Each grammar represents a distinct aspect of the language. A given sequence of grammars becomes a sequence of passes, or process steps. Each pass derives a meaning with respect to one grammar and uses that meaning to generate phrases which will be interpreted by the next pass. Although linguistic specification is usually done with context-free grammars, features of this parser which support general-rewrite grammars are essential for the integration of passes. Not only ambiguity, but also the locality of ambiguity is preserved from one pass to the next. It is necessary to preserve\r\nlocality of ambiguity in order to avoid explosive computation arising from useless action among independent sets of interpretations.</p>\r\n\r\n<p>I have implemented a general-purpose programming language called ICL with this system. The fact that ICL's datatypes are processed by a rewrite grammar makes it simple to implement both user-defined datatype coercions and functions known as polymorphic operators whose definitions depend on parameter datatypes. Datatype coercions and Polymorphic operators reduce the amount,of specification required in algorithms to such an extent that a user can often modify declarations and achieve optimizations and changes in concept without modifying his algorithmic specification.</p>\r\n\r\n<p>ICL includes a simple and safe policy about pointers so that the user can ignore their existence completely if he wishes. ICL automatically maximizes data sharing and minimizes copying by adopting a \"copy on write\" policy. This policy supports the illusion that each and every reference to a data structure generates a\r\ncomplete copy of that data structure. This same technique is used in the language processor itself to facilitate data sharing among multiple interpretations in ambiguous cases.</p>"
    }
]