Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
more anchors and intro for glossary
  • Loading branch information
lichtkind committed Apr 19, 2012
1 parent 80450bd commit 4b0f2fd
Showing 1 changed file with 77 additions and 37 deletions.
114 changes: 77 additions & 37 deletions docs/appendix-g-glossary.txt
@@ -1,37 +1,49 @@
% Perl 6 Tablets Appendix G - Glossary

Here you find short explanations to most of the computer science terms,
used in the tablets. These contain also links to specific syntax details,
that relate to that term. Thatswhy this page is the ideal entry point for
questions like: "Can I do *functional programming* in Perl 6?" or
"What kind of *iterators* are present and how they are spelled?"

**Navigation:** [A](#a) [B](#b) [C](#c) [D](#d) [E](#e)
[F](#f) [G](#g) [H](#h) [I](#i) [J](#j) [K](#k) [L](#l)
[M](#m#) [N](#n) [O](#o) [P](#p) [Q](#q) [R](#r) [S](#s)
[T](#t#) [U](#u) [V](#v) [W](#w) [X](#x) [Y](#y) [Z](#z)

# A

*ALAP* — as late as possible, within a given execution phase
(compile time or run time)
# A

*ASAP* — as soon as possible, within a given execution phase
(compile time or run time)
<a id="ALAP"/>
**ALAP** *(as late as possible)* &mdash; within a given execution phase
([compile time](#compile-time) or [run time](#run-time))

<a id="ASAP"/>
**ASAP** *(as soon as possible)* &mdash; within a given execution phase
(*[compile time](#compile-time)* or [run time](#run-time))

*AST* &mdash; (abstract syntax tree), tree like data structure, in which
<a id="AST"/>
**AST** *(abstract syntax tree)* &mdash; tree like data structure, in which
source code is transformed, before running the programm


# B

*backtracking* &mdash;
<a id="backtracking"/>
**backtracking** &mdash;
after a part of a pattern didn't match,
this last operation might not be counted (undone) and the pointer
for the position in the string where actual matching is taking place
is going a few steps to the left (it goes back)

*[binding](tablet-3-variables#binding)* &mdash;
<a id="binding"/>
**[binding](tablet-3-variables#binding)** &mdash;
making two variables share the same content by pointing to same
memory location


*block* &mdash; syntactically just a piece of code inside curly brackets
<a id="block"/>
**block** &mdash;
syntactically just a piece of code inside curly brackets
(**{}**), when [evaluated](#evaluation) it becomes an
object of the type **[Block](appendix-a-index.html#block-type)**

Expand All @@ -41,7 +53,8 @@ object of the type **[Block](appendix-a-index.html#block-type)**

*closure* &mdash;
routines whose state (content of all local variables) is
completely preserved until the next execution
completely preserved until the next execution,
mostly used as a fancy alias for a *[block](#block)*

*coderef* &mdash;
reference (pointer) to an executable block of code (routine)
Expand All @@ -50,6 +63,7 @@ reference (pointer) to an executable block of code (routine)
reading the human written source code and make it an
executable (piece of) program

<a id="compile-time"/>
*compile time* &mdash;
time when Perl converts source code to executable form (bytecode),
is always before *[runtime](#runtime)*
Expand Down Expand Up @@ -77,113 +91,139 @@ creating a *[subroutine](routine)* that calls another with certain

# D

*declarative programming* &mdash; programming paradigm that expresses the
<a id="declarative-programming"/>
**declarative programming** &mdash; programming paradigm that expresses the
logic of a computation without describing its control flow

*design by contract* &mdash; programming style in which parameters and
<a id="design-by-contract"/>
**design by contract** &mdash; programming style in which parameters and
return values from routines must meet conditions; A signature is
considered contract in Perl 6


# E

*evaluation* &mdash; executing a piece of program, before that all
<a id="evaluation"/>
**evaluation** &mdash;
executing a piece of program, before that all
variables will be replaced with their content

# F

*functional programming* &mdash; exclusively function based programming
style, [strongly
supported](ap-d-p5-p6-delta.html#functional-programming)
<a id="functional-programming"/>
**functional programming** &mdash;
exclusively function based programming
style, [strongly supported](appendix-d-delta.html#functional-programming)
by Perl 6, considered as a branch of Declarative Programming


# G

# H

# I

*iteration* &mdash; flow control, repeatedly executing a block
<a id="iteration"/>
**iteration** &mdash;
repeated executing of a term or *[block](#block)*, enforced by
[iterators](appendix-b-grouped.html#Loops)

# J

*junction* &mdash; a type of value that holds a logical combination of
several values, example: (A and B) or C
<a id="junction"/>
**junction** &mdash; a type of value that holds a logical combination of
several values, example: (A and B) or C, creat them with
[junctive ops](tablet-4-operators.html#)

# K

# L

*list context* -
<a id="list-contex"/>
**list context** -

*longest token matching* &mdash; (short *LTM*) when searching a pattern
<a id="LTM"/>
**LTM** *(longest token matching)* &mdash; when searching a pattern
with alternatives (sub|substr) the search will continue after
finding the pattern 'sub' because of looking for the longest
alternative

# M

*[metaoperator](appendix-b-grouped.html#metaoperators)* &mdash;
alters the meaning of other operators
<a id="metaoperator"/>
**[metaoperator](appendix-b-grouped.html#metaoperators)** &mdash;
operators that alter the meaning of other normal operators

*metaprogramming* -
<a id="metaprogramming"/>
**metaprogramming** -

# N

# O

*object oriented orogramming* &mdash; programming paradigm (style), that
<a id="OOP"/>
*OOP* *(object oriented orogramming)* &mdash; programming paradigm (style), that
arranges data and functions that belong together into so called
objects


# P

<a id="OOP"/>
*parameter* &mdash;
value passed to a method or *[subroutine](routine)*,
mostly as part of the signature

<a id="parsetree"/>
*parsetree* &mdash;
hierarchical data representing the logical structure
of a program, also called *[AST](#ast)*
of a program, also called *[AST](#AST)*

<a id="phaser"/>
[phaser](appendix-b-grouped.html#closure-traits) &mdash;
Perl 6 term for specially named subblocks withe special runtimes
aka closure traits - example:
**[BEGIN](appendix-a-index.html#begin-phaser)**
aka closure traits &mdash;
example: **[BEGIN](appendix-a-index.html#BEGIN-phaser)**

<a id="pipe"/>
*pipe* &mdash; connection between 2 processes, move data (mostly only in
one direction) without buffering

*[POD](tablet-2-basic-syntax.html#pod)* &mdash;
Plain Old Documentation, a markup language to be embeded into
Perl source code, has in Perl 6 ability to store data to be
retrieved later
<a id="POD"/>
*[POD](tablet-2-basic-syntax.html#pod)*
*(Plain Old Documentation)* &mdash;
a markup language to embeded documentation into Perl source code,
has in Perl 6 the ability to store data into special variables
like **[\$=pod](appendix-a-index.html#pod-pod-var)** to be retrieved later

<a id="pointy-block"/>
*pointy block* &mdash; a block that is given readonly *[parameters](parameter)* with
**[-\>](appendix-a-index.html#arrow-op)** or rw parameters with
**[<-\>](appendix-a-index.html#lower-minus-greater-op)**

<a id="property"/>
*property* &mdash; metadata of a variable set at runtime

# Q

# R

<a id="reference"/>
*reference* &mdash;
address of data in memory, often termed a capture in Perl 6

<a id="regular-expression"/>
*regular expression* &mdash; in Perl5: pattern matching notation, either
regex, token or rule in Perl6

<a id="routine"/>
*routine* &mdash;
block of code callable by name,
can have a *[signature](#signature)* and a return type,
objects of the type **[SoftRoutine](appendix-a-index.html#softroutine-type)**
and **[HardRoutine](appendix-a-index.html#hardroutine-type)**

*runtime* &mdash; time when execution hits a certain part of the program,
<a id="run-time"/>
*run time* &mdash; time when execution hits a certain part of the program,
after *[compile time](#compile-time)*


Expand Down Expand Up @@ -228,7 +268,7 @@ variable, like *[given](appendix-a-index.html#given)*
and *[for](appendix-a-index.html#for)*

*trait* &mdash;
additional property of a variable, defined at compile time,
additional property of a variable, defined at *[compile time](#compile-time)*,
see **[but](appendix-a-index.html#but)**, what other languages call
*trait* Perl calls [role](#role)

Expand All @@ -247,12 +287,12 @@ special property of a variable

# Y

<a id="yadda-operator"/>
*[yadda operator](operators.html#yadda)* &mdash;
placeholder for later to be written code, because in empty
routines are forbidden, comes in 3 flavours:
**[...](appendix-a-index.html#triple-dot-yadda-op)**,
**[???](appendix-a-index.html#triple-question-mark)** and
**[!!!](appendix-a-index.html#triple-exclamation-mark)**


# Z

0 comments on commit 4b0f2fd

Please sign in to comment.