Metaprogramming

Metaprogramming

Metaprogramming is a programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyze or transform other programs, and even modify itself while running. In some cases, this allows programmers to minimize the number of lines of code to express a solution, in turn reducing development time. It also allows programs a greater flexibility to efficiently handle new situations without recompilation. Metaprogramming can be used to move computations from run-time to compile-time, to generate code using compile time computations, and to enable self-modifying code. The ability of a programming language to be its own metalanguage is called reflection. Reflection is a valuable language feature to facilitate metaprogramming. Metaprogramming was popular in the 1970s and 1980s using list processing languages such as LISP. LISP hardware machines were popular in the 1980s and enabled applications that could process code. They were frequently used for artificial intelligence applications. (Wikipedia).

Video thumbnail

metauni-dev - The Look button

A typical metauni experience involves a series of boards, often with dense technical content. Having a convenient way of getting a fullscreen view of these boards is crucial. This video is a brief introduction to the feature. Music by Lucas Cantor.

From playlist Metauni

Video thumbnail

metauni-dev - URLs for boards

A short demo of getting a keycode for a board at metauni and using it to view the board in a web browser, and of using a URL for a board to jump into metauni at the exact location of a board. Music by Lucas Cantor.

From playlist Metauni

Video thumbnail

Adding Vectors Geometrically: Dynamic Illustration

Link: https://www.geogebra.org/m/tsBer5An

From playlist Trigonometry: Dynamic Interactives!

Video thumbnail

Storyboard - a bit of fun with deep learning for vision and storytelling

A bit of fun for Christmas! Draw something, add some text and click "Tell a Story" to get a poem, or a short story, incorporating the elements. Available at metauni for anyone with scribe permissions (make a Storyboard pocket). Music by Lucas Cantor.

From playlist Metauni

Video thumbnail

Composing Trig & Inverse Trig Functions (2)

Evaluating compositions of #trig & inverse #trig functions: More quick formative assessment via #geogebra: https://www.geogebra.org/m/rwpkkmt7 & https://www.geogebra.org/m/hcw4fr6t #MTBoS #ITeachMath #trigonometry #precalc #math #mathchat

From playlist Trigonometry: Dynamic Interactives!

Video thumbnail

Projection of One Vector onto Another Vector

Link: https://www.geogebra.org/m/wjG2RjjZ

From playlist Trigonometry: Dynamic Interactives!

Video thumbnail

Composing Trig & Inverse Trig Functions (1)

Create a #GeoGebra lesson out of https://www.geogebra.org/m/byevwtd8 , have remote & in-class Ss join, & observe everyone’s thinking in real time! Here, evaluating compositions of #trig & inverse trig functions: https://www.geogebra.org/m/ezkfbxsu

From playlist Trigonometry: Dynamic Interactives!

Video thumbnail

Modeling with Trigonometric Functions! (Formative Assessment w/Feedback)

Link: https://www.geogebra.org/m/cuCwguXP BGM: Simeon Smith

From playlist Trigonometry: Dynamic Interactives!

Video thumbnail

Ruby Conf 2013 - Preferring Object-Orientation to Metaprogramming

By Steven Harms Metaprogramming in Ruby is a mixed blessing: it makes many impossible things possible. This quicker, easier, more seductive path, however, can lead to contorted code that's difficult to maintain and can be hard to understand. So what's the alternative? For many uses of met

From playlist RubyConf 2013

Video thumbnail

Practical Meta Programming Modeling Thought by Steven Harms

I have completed a second major release of a library that fully conjugates Classical Latin verbs in each of their 133 froms * 5 standard paradigms. Owing to the irregularity of human communication, modeling the provision of unambiguous answers (return values) to ambiguously asked things (f

From playlist Ruby Conference 2011

Video thumbnail

RubyHack 2019: GraphQL Migration: A Proper Use Case for Metaprogramming? by Shawnee Gao

RubyHack 2019: GraphQL Migration: A Proper Use Case for Metaprogramming? by Shawnee Gao Integrating GraphQL Ruby includes repetitive and straightforward processes that can be metaprogrammed. I will detail metaprogramming a GraphQL API from a demo app and explain the benefits of this desig

From playlist RubyHack 2019

Video thumbnail

Garden City Ruby 2014 - Simple Ruby DSL Techniques: Big Project Impact!

By Aman King Will showcase real-world project code, highlighting custom-written Ruby DSLs that contribute to project success by improving team productivity. Ranging from simple authentication rules to complex social networking capabilities, DSLs can help tackle cross-cutting requirements

From playlist Garden City Ruby 2014

Video thumbnail

RubyConf 2016 - Metaprogramming? Not good enough! by Justin Weiss

RubyConf 2016 - Metaprogramming? Not good enough! by Justin Weiss If you know how to metaprogram in Ruby, you can create methods and objects on the fly, build Domain Specific Languages, or just save yourself a lot of typing. But can you change how methods are dispatched? Can you decide th

From playlist RubyConf 2016

Video thumbnail

Meta-programming for Dummies - RedDotRubyConf 2017

Speaker: Weiqing Toh, Software Engineer, Ministry of Education The construct of the Ruby language allows for meta-programming, or 'code which modifies code at runtime'. However, meta-programming is a double-edged sword; as much as it is useful, it could very easily be misused by teams as

From playlist RedDotRuby 2017

Video thumbnail

ArrrrCamp 2013 - You gotta try this by Avdi Grimm

A talk about metaprogramming, coding for fun, and the joy of sharing. Help us caption & translate this video! http://amara.org/v/FG4G/

From playlist ArrrrCamp 2013

Video thumbnail

Writing Equivalent Polar Coordinates Quiz

Link: https://www.geogebra.org/m/MxAvq5Yt

From playlist Trigonometry: Dynamic Interactives!

Video thumbnail

Category Theory 1.1: Motivation and Philosophy

Motivation and philosophy

From playlist Category Theory

Video thumbnail

RubyConf 2019 - Investigative Metaprogramming by Betsy Haibel

RubyConf 2019 - Investigative Metaprogramming by Betsy Haibel When was the last time you got an un-Googleable error? The kind that takes you and your lead three days to debug, with weird generic stacktraces deep in framework internals? What if you could approach that bug with something ot

From playlist RubyConf 2019

Related pages

Template Haskell | Transaction processing | Nim (programming language) | Parsing | Context-free grammar | Lua (programming language) | Quine (computing) | Scala (programming language) | Haxe | Dependent type | Hygienic macro | Julia (programming language) | Regular expression | Partial evaluation | Artificial intelligence | Generic programming | Dynamic program analysis | CICS | Racket (programming language) | Prolog | Program transformation | Compile-time function execution | MacroML | SAS (software) | Forth (programming language) | Genetic programming