• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 5
  • 5
  • 2
  • 1
  • Tagged with
  • 18
  • 5
  • 4
  • 4
  • 4
  • 3
  • 3
  • 3
  • 3
  • 3
  • 3
  • 3
  • 3
  • 2
  • 2
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Automatic Instantiation and Timing-Aware Placement of Bus Macros for Partially Reconfigurable FPGA Designs

Subbarayan, Guruprasad 02 January 2011 (has links)
FPGA design implementation and debug tools have not kept pace with the advances in FPGA device density. The emphasis on area optimization and circuit speed has resulted in longer runtimes of the implementation tools. We address the implementation problem using a divide-and-conquer approach in which some device area and circuit speed is sacrificed for improved implementation turnaround time. The PATIS floorplanner enables dynamic modular design that accelerates implementation for incremental changes to a design. While the existing implementation flows facilitate timing closure late in the design cycle by reusing the layout of unmodified blocks, dynamic modular design accelerates implementation by achieving timing closure for each block independently. A complete re-implementation is still rapid as the design blocks can be processed by independent and concurrent invocations of the standard tools. PATIS creates the floorplan for implementing modules in the design. Bus macros serve as module interfaces and enable independent implementation of the modules. The dynamic modular design flow achieves around 10x speedup over the standard design flow for our benchmark designs. / Master of Science
2

Enabling Optimizations Through Demodularization

Johnson, Blake Dennis 01 March 2016 (has links) (PDF)
Programmers want to write modular programs to increase maintainability and create abstractions, but modularity hampers optimizations, especially when modules are compiled separately or written in different languages. In languages with syntactic extension capabilities, each module in a program can be written in a separate language, and the module system must ensure that the modules interoperate correctly. In Racket, the module system ensures this by separating module code into phases for runtime and compile-time and allowing phased imports and exports inside modules. We present an algorithm, called demodularization, that combines all executable code from a phased modular program into a single module that can then be optimized as a whole program. The demodularized programs have the same behavior as their modular counterparts but are easier to optimize. We show that programs maintain their meaning through an operational semantics of the demodularization process and verify that performance increases by comparing modular Racket programs to the equivalent demodularized and optimized programs. We use the existing Racket optimizer to optimize the demodularized programs by decompiling them into an intermediate form that the optimizer uses. We also demonstrate a dead code elimination optimization that dramatically reduces the file size of demodularized Racket programs.
3

An Optimized R5RS Macro Expander

Reque, Sean P. 05 February 2013 (has links) (PDF)
Macro systems allow programmers abstractions over the syntax of a programming language. This gives the programmer some of the same power posessed by a programming language designer, namely, the ability to extend the programming language to meet the needs of the programmer. The value of such systems has been demonstrated by their continued adoption in more languages and platforms. However, several barriers to widespread adoption of macro systems still exist. The language Racket defines a small core of primitive language constructs, including a powerful macro system, upon which all other features are built. Because of this design, many features of other programming languages can be implemented through libraries, keeping the core language simple without sacrificing power or flexibility. However, slow macro expansion remains a lingering problem in the language's primary implementation, and in fact macro expansion currently dominates compile times for Racket modules and programs. Besides the typical problems associated with slow compile times, such as slower testing feedback, increased mental disruption during the programming process, and unscalable build times for large projects, slow macro expansion carries its own unique problems, such as poorer performance for IDEs and other software analysis tools. In order to improve macro expansion times for Racket, we implement an existing expansion algorithm for R5RS Scheme macros, which comprise a subset of Racket's macro system, and use that implementation to explore optimization opportunities. Our resulting expander appears to be the fastest implementation of a R5RS macro expander in a high-level language and performs several times faster than the existing C-based Racket implementation.
4

Syntactic Closures

Bawden, Alan, Rees, Jonathan 01 June 1988 (has links)
In this paper we describe {\\it syntactic closures}. Syntactic closures address the scoping problems that arise when writing macros. We discuss some issues raised by introducing syntactic closures into the macro expansion interface, and we compare syntactic closures with other approaches. Included is a complete implementation.
5

Aplikace korespondenční analýzy v programu MS Excel / Correspondence analysis application in MS Excel program

Ganajová, Michaela January 2008 (has links)
The aim of the diploma thesis was to create independently an application, automating a correspondence analysis calculation using MS Excel and taking advantage of VBA programming language. The application was then used to analyse Slovak banking sector. The created application is based on macro sets which can be split up to two parts. The first part produces a contingency table and converts it into a format usable in the second part. Then there is executed the Correspondence Analysis calculation itself. Supplement Matrix is being used, that allows to discharge functions from matrix and linear algebra. The application allows to process any matrix dimension. Dialog window offers four normalization types, shortened and also full output and it is possible to display row or column variable categories, eventually both. The analysis subject was to find out which of the products are typical for considered banks and for which clients, divided into age categories, is attractive particular bank and/or product. A starting point is a product usage data matrix at a particular bank. There was made a conclusion, that it is possible to divide banks into more traditional or modern type institutions and also that each bank has a typical product.
6

Macro Control Structures for Structured Programming in ALC

Connally, Kim G. 12 1900 (has links)
This thesis describes a set of computer program control structures which permits the application of certain structured programming techniques to the IBM/360 assembly language (ALC). The control structures are implemented by programmerdefined instructions known as macros. A history of computer software is presented, providing a basis for the emergence of structured programming. A survey of the major concepts of structured programming with special attention to control structures and their significance to structured programming follows. The macros developed in this study include DO, ENDDO, LEAVE, CASE, and ENDCASE. They provide a looping control structure, a loop-escape construct, and a selective control structure. Examples of usage are given.
7

Macros como mecanismos de abstração em transformações textuais. / Macros as abstraction mechanisms in textual transformations.

Cereda, Paulo Roberto Massa 29 June 2018 (has links)
Abstração é um processo que consiste em encontrar similaridades em artefatos e omitir detalhes desnecessários em um particular momento. Em geral, tal processo resulta em simplificação, substituindo situações do mundo real complexas e excessivamente detalhadas por modelos compreensíveis que admitem resolução. Na computação, existem estilos de programação que fornecem ao programador uma visão particular sobre a organização e execução de um programa. Cada estilo viabiliza formas de representação e tratamento de abstrações aderentes ao conjunto de conceitos, valores, percepções e práticas compartilhadas por uma comunidade. Em particular, o fenômeno de reescrita de termos viabiliza transformações entre espaços de abstração. Como instância de tal fenômeno, macros constituem um padrão sintático que especifica uma transformação simbólica ou algorítmica sobre uma sequência de símbolos associada. Na ocorrência de uma instância de tal padrão sintático, este é substituído pela aplicação de sua transformação correspondente. Dada a importância da disponibilização de estruturas de representação mais convenientes às necessidades dos usuários, o objetivo principal desta tese é tratar da utilização de sistemas de reescrita como mecanismos de abstração em transformações textuais. Para tal, técnicas de projeto e aspectos de implementação de tais sistemas são apresentados, com enfoque em macros. / Abstraction is a process of finding similarities in artifacts and omitting unnecessary details at a particular moment. In general, such a process results in simplification, replacing complex and overly detailed real-world situations with understandable models that admit resolution. In computing, there are programming styles that give the programmer a particular insight into the organization and execution of a program. Each style enables forms of representation and treatment of abstractions adhering to the set of concepts, values, perceptions and practices shared by a community. In particular, the term rewriting phenomenon enables transformations along spaces of abstraction. As an instance of such a phenomenon, macros constitute a syntactic pattern that specifies a symbolic or algorithmic transformation over an associated symbol sequence. In the occurrence of an instance, the matched syntactic pattern is replaced by the application of its corresponding transformation. Given the importance of making representation structures more convenient to users\' needs, this thesis aims at addressing the use of rewriting systems as abstraction mechanics in textual transformations. To this end, design techniques and implementation aspects of such systems are presented, focusing on macros.
8

Macros como mecanismos de abstração em transformações textuais. / Macros as abstraction mechanisms in textual transformations.

Paulo Roberto Massa Cereda 29 June 2018 (has links)
Abstração é um processo que consiste em encontrar similaridades em artefatos e omitir detalhes desnecessários em um particular momento. Em geral, tal processo resulta em simplificação, substituindo situações do mundo real complexas e excessivamente detalhadas por modelos compreensíveis que admitem resolução. Na computação, existem estilos de programação que fornecem ao programador uma visão particular sobre a organização e execução de um programa. Cada estilo viabiliza formas de representação e tratamento de abstrações aderentes ao conjunto de conceitos, valores, percepções e práticas compartilhadas por uma comunidade. Em particular, o fenômeno de reescrita de termos viabiliza transformações entre espaços de abstração. Como instância de tal fenômeno, macros constituem um padrão sintático que especifica uma transformação simbólica ou algorítmica sobre uma sequência de símbolos associada. Na ocorrência de uma instância de tal padrão sintático, este é substituído pela aplicação de sua transformação correspondente. Dada a importância da disponibilização de estruturas de representação mais convenientes às necessidades dos usuários, o objetivo principal desta tese é tratar da utilização de sistemas de reescrita como mecanismos de abstração em transformações textuais. Para tal, técnicas de projeto e aspectos de implementação de tais sistemas são apresentados, com enfoque em macros. / Abstraction is a process of finding similarities in artifacts and omitting unnecessary details at a particular moment. In general, such a process results in simplification, replacing complex and overly detailed real-world situations with understandable models that admit resolution. In computing, there are programming styles that give the programmer a particular insight into the organization and execution of a program. Each style enables forms of representation and treatment of abstractions adhering to the set of concepts, values, perceptions and practices shared by a community. In particular, the term rewriting phenomenon enables transformations along spaces of abstraction. As an instance of such a phenomenon, macros constitute a syntactic pattern that specifies a symbolic or algorithmic transformation over an associated symbol sequence. In the occurrence of an instance, the matched syntactic pattern is replaced by the application of its corresponding transformation. Given the importance of making representation structures more convenient to users\' needs, this thesis aims at addressing the use of rewriting systems as abstraction mechanics in textual transformations. To this end, design techniques and implementation aspects of such systems are presented, focusing on macros.
9

Rejuvenating C++ Programs through Demacrofictation

Aditya Kumar, - 14 March 2013 (has links)
As we migrate software to new versions of programming languages, we would like to improve the style of its design and implementation by replacing brittle idioms and abstractions with the more robust features of the language and its libraries. This process is called source code rejuvenation. In this context, we are interested in replacing C preprocessor macros in C++ programs with C++11 declarations. The kinds of problems engendered by the C preprocessor are many and well known. Because the C preprocessor operates on the token stream independently from the host language’s syntax, its extensive use can lead to hard-to-debug semantic errors. In C++11, the use of generalized constant expressions, type deduction, perfect forwarding, lambda expressions, and alias templates eliminate the need for many previous preprocessor-based idioms and solutions. Additionally, these features can be used to replace macros from legacy code providing better type safety and reducing software-maintenance efforts. In order to remove the macros, we have established a correspondence between different kinds of macros and the C++11 declarations to which they could be trans- formed. We have also developed a set of tools to automate the task of demacrofying C++ programs. One of the tools suggest a one-to-one mapping between a macro and its corresponding C++11 declaration. Other tools assist in carrying out iterative application of refactorings into a software build and generating rejuvenated programs. We have applied the tools to seven C++ libraries to assess the extent to which these libraries might be improved by demacrofication. Results indicate that between 52% and 98% of potentially refactorable macros could be transformed into C++11 declarations.
10

Možnosti systému Sinumerik Operate 4.7 při programování CNC frézovacích center / Possibilities of the Sinumerik Operate 4.7 system for programming of CNC milling centers

Hanuška, Rostislav January 2018 (has links)
This diploma thesis is focused on advanced NC programming using macros and user cycles. The first part deals with theory of programming and machining of thin-walled parts. The second part contains practical examples of creating cycles, including their graphical support, for individual thin-wall milling strategies. Everything is explained in detail and work can serve as a guide for programmers or wider professional public.

Page generated in 0.0706 seconds