Program transformation | Metaprogramming

Program transformation

A program transformation is any operation that takes a computer program and generates another program. In many cases the transformed program is required to be semantically equivalent to the original, relative to a particular formal semantics and in fewer cases the transformations result in programs that semantically differ from the original in predictable ways. While the transformations can be performed manually, it is often more practical to use a program transformation system that applies specifications of the required transformations. Program transformations may be specified as automated procedures that modify compiler data structures (e.g. abstract syntax trees) representing the program text, or may be specified more conveniently using patterns or templates representing parameterized source code fragments. A practical requirement for source code transformation systems is that they be able to effectively process programs written in a programming language. This usually requires integration of a full front-end for the programming language of interest, including source code parsing, building internal program representations of code structures, the meaning of program symbols, useful static analyses, and regeneration of valid source code from transformed program representations. The problem of building and integrating adequate front ends for conventional languages (Java, C++, PHP etc.) may be of equal difficulty as building the program transformation system itself because of the complexity of such languages. To be widely useful, a transformation system must be able to handle many target programming languages, and must provide some means of specifying such front ends. A generalisation of semantic equivalence is the notion of program refinement: one program is a refinement of another if it terminates on all the initial states for which the original program terminates, and for each such state it is guaranteed to terminate in a possible final state for the original program. In other words, a refinement of a program is more defined and more deterministic than the original program. If two programs are refinements of each other, then the programs are equivalent. (Wikipedia).

Video thumbnail

Transformations of a function - How to do Pre-Calc

๐Ÿ‘‰ Learn how to determine the transformation of a function. Transformations can be horizontal or vertical, cause stretching or shrinking or be a reflection about an axis. You will see how to look at an equation or graph and determine the transformation. You will also learn how to graph a t

From playlist Characteristics of Functions

Video thumbnail

Matrix Transformations are the same thing as Linear Transformations

Learning Objectives: 1) Recall the defining properties of Matrix-vector product and of Linear Transformations 2) Apply algebraic rules to deduce that Matrix transformations are Linear transformations 3) Prove that Linear Transformations are Matrix transformations by writing a vector as a l

From playlist Linear Algebra (Full Course)

Video thumbnail

Pre-Calculus - Introduction to function transformations

This video will introduce you to the basic idea of applying transformations to a function. An example is presented at the end so that you can see how they are applied. For further examples watch the rest of the videos associated with the playlist. For more videos please visit http://www

From playlist Pre-Calculus

Video thumbnail

๐Ÿ”ฅCareer Information Session: Prepare for Digital Transformation with Purdue University | Simplilearn

๐Ÿ”ฅExplore our FREE Courses: https://www.simplilearn.com/pgp-digital-transformation-certification-training-course?utm_campaign=DigitalTransformationWebinar11Jan2023&utm_medium=DescriptionFirstFold&utm_source=youtube Career Information Session: Develop Your Data Science Career With the IIT K

From playlist Simplilearn Live

Video thumbnail

2. Reasoning: Goal Trees and Problem Solving

MIT 6.034 Artificial Intelligence, Fall 2010 View the complete course: http://ocw.mit.edu/6-034F10 Instructor: Patrick Winston This lecture covers a symbolic integration program from the early days of AI. We use safe and heuristic transformations to simplify the problem, and then conside

From playlist MIT 6.034 Artificial Intelligence, Fall 2010

Video thumbnail

Lecture 15: Big Data: Spark

Lecture 15: Big Data: Spark MIT 6.824: Distributed Systems (Spring 2020) https://pdos.csail.mit.edu/6.824/

From playlist MIT 6.824 Distributed Systems (Spring 2020)

Video thumbnail

Stanford Webinar - Organizing to Compete in an Age of Disruption

Established enterprises have historically struggled to catch the next wave of innovation. Up until now, there has been no really good answer for how to solve this problem. Zone management, as described by Geoffrey Moore in his recent book Zone to Win, explores a new way of thinking abou

From playlist Stanford Webinars

Video thumbnail

Course intro: Understand the Fourier transform and its applications

This is part of an online course on foundations and applications of the Fourier transform. The course includes 4+ hours of video lectures, pdf readers, exercises, and solutions. Each of the video lectures comes with MATLAB code, Python code, and sample datasets for applications. With 3000

From playlist Understand the Fourier transform

Video thumbnail

PySpark Full Course [2023] | Learn PySpark | PySpark Tutorial | Edureka

๐Ÿ”ฅ๐„๐๐ฎ๐ซ๐ž๐ค๐š ๐๐ฒ๐’๐ฉ๐š๐ซ๐ค ๐‚๐ž๐ซ๐ญ๐ข๐Ÿ๐ข๐œ๐š๐ญ๐ข๐จ๐ง ๐“๐ซ๐š๐ข๐ง๐ข๐ง๐  ๐‚๐จ๐ฎ๐ซ๐ฌ๐ž (Use code "๐˜๐Ž๐”๐“๐”๐๐„๐Ÿ๐ŸŽ") : https://www.edureka.co/pyspark-certification-training This Edureka PySpark Full Course video will help you understand and learn PySpark in detail. This Spark tutorial is ideal for both beginners as well as professiona

From playlist PySpark Tutorial for Beginners | Edureka

Video thumbnail

Transformations that convert one function to another exponential

๐Ÿ‘‰ Learn how to identify transformations of functions. Transformation of a function involves alterations to the graph of the parent function. The transformations can be dilations, translations (shifts), reflection, stretches, shrinks, etc. To sketch the graph of a transformed function, we s

From playlist Characteristics of Functions

Video thumbnail

Masayuki Ohzeki: "Quantum annealing and machine learning - new directions of quantum"

Machine Learning for Physics and the Physics of Learning 2019 Workshop IV: Using Physical Insights for Machine Learning "Quantum annealing and machine learning - new directions of quantum" Masayuki Ohzeki - Tohoku University Abstract: Quantum annealing is a generic solver of combinator

From playlist Machine Learning for Physics and the Physics of Learning 2019

Related pages

Metaprogramming | DMS Software Reengineering Toolkit | List of program transformation systems | Transformational grammar | Abstract syntax tree | Transformation language | Parsing | Static program analysis | Source-to-source compiler