- *G4229 *11 πρᾶγμα (prag'-mah) : from G4238; a deed; by implication, an affair; by extension, an object (material):--business, matter, thing, work.
- πραγματων *4
- Luke 1:1 ... to set forth in order a declaration of those things which are most surely believed among us,
- Hebrews 6:18 That by two immutable things, in which it was impossible ...
- Hebrews 10:1 ... the very image of the things, can never with ...
- Hebrews 11:1 ... the substance of things hoped for, the evidence of things not seen.
- πραγμα *3
- Acts 5:4 ... why hast thou conceived this thing in thine heart? ...
- 1 Corinthians 6:1 Dare any of you, having a matter against another, go to law ...
- James 3:16 ... and every evil work.
- πραγματι *3
- Romans 16:2 ... her in whatsoever business she hath need of you: for ...
- 2 Corinthians 7:11 ... to be clear in this matter.
- 1 Thessalonians 4:6 ... his brother in any matter: because that the Lord is the avenger ...
- πραγματος
- Matthew 18:19 ... earth as touching any thing that they shall ask, it shall be done ...
25. Usage - thing
*G4229 *11 πρᾶγμα (prag'-mah) : from G4238; a deed; by implication, an affair; by extension, an object (material):--business, matter, thing, work.
|
Words: πραγμα=3 πραγματι=3 πραγματος πραγματων=4
|
26. Meta-meetings
A meta-meeting is a meeting about a meeting. One popular Dilbert cartoon has a pre-planning meeting for the planning meeting for the meeting.
27. Meta-data and meta-tables
Meta-data is data about data.
The meta-data of a phone conversation (in security terms sometimes called traffic analysis) includes the fact that you made a call, who you called, when you called, how long the call lasted, etc., but not the actual contents of your phone conversation.
28. Meta-knowledge
The ancient Greek word
"ἐπίγνωσις" ≈ "examination, scrutiny" as in an in-depth and intimate working knowledge. The literal meaning is "
upon-knowledge" is in "
knowledge on knowledge" or a type of meta-knowledge. How do you "
know" something?
I "know" something.
I "know" that I "know" something.
I "know" that I "know" that I "know" something.
... and so on. When is the fixed point reached?
29. Meta-compilers
A meta-compiler is compiler that compiles (or helps write) a compiler, called a compiler-compiler.
A popular Linux-based meta-compiler or compiler-compiler is
YACC (Yet Another Compiler Compiler) or an improved version called Bison (a play on the animal name yac as being pronounced similarly to YACC).
30. Meta-programming
A meta-program is a program that writes a program, as in a meta-compiler.
In computer science, the term
reflection refers to using a program to look at it's own code in a meta-programming way.
Some languages that have good reflection support: C#, Python, Julia and (of course) LISP (and variants).
31. DNA analogies
The DNA code can replicate itself. It has reflection capabilities (e.g., AIDS virus as in a rootkit-viris).
32. Programs that write programs
The field of programming languages in computer science is concerned, in part, with programs that write programs.
For some simple examples in C, see
Programs that write programs.
33. Meta-language
A meta-language is a language that describes a language.
An English class can use English to describe the syntax and semantics of the English language.
34. Language and self reference
Consider the following sentence.
This sentence was originally in German but was translated to the English you are now reading.
How would you translate the above sentence into, say, Spanish?
What was the original German sentence?
35. Language learning
Whenever I study a language (German, Greek, Russian, etc.) I enjoy getting to the point where I can start learning more of the language by reading books in that language that talk about the language.
Dictionary of terms of that language defined in that language.
Etymology of terms in the language written in that language.
To learn, say, some Russian, it is useful, knowing German and Greek, to read books in German and Greek that teach Russian - reinforcing the other languages while learning a new language.
36. C/C++ preprocessor
The C++ programming language has a Turing-complete meta-programming system that is an extension and improvement of the C directive preprocessor that has directives such as
include,
define,
ifdef, etc.
37. Decisions
A meta-design is an design about how to design.
A meta-analysis is an analysis about ways to analyze.
A meta-policy is a policy about policies.
A meta-decision is a decision about decisions.
A meta-process is a process about processes (including itself)
... and so on ...
38. Processes
A meta-process is a process about processes.
Actual event: Department CS meeting about making sure we cover top-down design and programming in a course, an important concept in CS, despite not using it other places in the course nor in solving actual problems faced by the CS department.
39. Design
A meta-design is a design about designs. Book: The design of design by Frederick Brooks, Jr..
Note: Frederick Brooks, Jr., is the author of "The mythical man month", an important book in the history of software engineering principles. Today, the term used would be a "
person month" rather than a "
man month".
40. XML and DTD
41. C statements in EBNF
42. Language grammars
Almost every programming language has a grammar that has been expressed in EBNF. For example, search the Internet for the following.
C language ebnf grammr
43. C statement grammar
Here is a (simplified) grammar of C statements as covered in most introductory programming courses and expressed as an EBNF syntax diagram (ignoring some statements as
goto,
switch, etc.)
44. C statement textual grammar
Here is the textual EBNF grammar of the above syntax diagrams.
stmt =
"if" "(" expr ")" stmt [ else stmt ]
| "while" "(" expr ")" stmt
| "do" stmt "while" "(" expr ")" ";"
| "for" "(" [ assg ] ";" [ expr ] ";" [ assg ] ")" stmt
| "return" [ expr ] ";"
| var "=" expr ";"
| id "(" [ expr { "," expr } ] ")" ";"
| "{" { stmt } "}"
| ";"
.
Note: The full grammar precisely defines where semicolons are needed and where they are not needed and where they are optional.
45. EBNF in EBNF
Here is the same grammar in textual form.
Syntax = { Production } .
Production = "Variable" "=" Expression "." .
Expression = Term { "|" Term } .
Term = Factor { Factor } .
Factor = "Terminal" | "Variable" | "[" Expression "]" | "{" Expression "}" | "(" Expression ")" .
46. BNF textual grammar
47. Meta-acronyms
Some acronyms are meta-acronyms or otherwise recursive.
A TLA (Three Letter Acronym) is a TLA. That is, the definition includes itself. This is also known as "autological".
48. GNU
GNU (GNU is Not Unix) is a platform for Unix/Linux tools such as the C or C++ compilers used in some beginning programming courses. The C compiler often used in an introductory programming course is
gcc which stands for
GNU C Compiler.
GNU is a
recursively defined acronym (of
infinite regress) where the following holds, using parentheses to show the expansion.
GNU =
(GNU is Not Unix) =
((GNU is Not Unix) is Not Unix) =
(((GNU is Not Unix) is Not Unix) is Not Unix) =
...
Some see this as cute without any useful meaning. The general approach here is that of a
string rewriting system (e.g., text formatter).
49. After these things
50. Tautology
51. Math tautology
For example, the mathematical formula
x = x
means that "
x" (whatever "
x" is), is equal to "
x" and is always "
true" (whatever "
true" means). Note that in computer programming languages such as C#, Java, JavaScript, etc. the statement
x = x
means take the value of "
x" and assign it to itself (a side-effect that changes the state of the computer).
On the other hand, the expression
x == x
is the true value of the expression which is always true in that "
x" is always equal to itself. It is a tautology and can therefore be simplified to the expression
true
where true is always true and false is always false and they are not the same (they are opposites in the sense of the operation of set compliment).
52. Programming
One way to identify a beginning programmer is that they would write something like
if (x == x) then
\t# ... actions ...
\tend
instead of
if true then
\t# ... actions ...
\tend
which can be simplified to the following.
# ... actions ...
53. DNA compilers
Note that an optimizing DNA compiler might recognize and do this (and many other) optimizations making the final DNA code difficult to abstract to a higher level language notation (as used by human programmers).
54. End of page