=begin = (()) Glossary # Original: by matz@zetabits.com (Yukihiro Matsumoto, aka matz) # English Translation: by matz himself and web-i31s@clio.ne.jp (SugHimsi) et alii. # First Release: 2000-12-25 # Last Retrieval: 2000-12-29 (Fixed some misspelling.) == ((*A*)) : ((:Abstract Data Type:)) A bunch of data structure and operation to the (()) is called an abstract data type. The abstract data should not be operated unless passing this operation. As a result, it is not referred directly from the outside, and the change in an internal structure does not color the outside. This is called (()). : ((:Associative Array:)) Alias of (()). It seems "Associative" is because the hash can take out the value of an arbitrary key, and "Array" is because you can assume it to be an array which the subscript is not number. Once upon a time, the associative array (called associative memory then) was thought to be realized with hardware, but improvement of hardware's calculation speed and discovery of an appropriate algorithm (it is called "(()) table", derivation of the hash) brought us achievement only with software. : ((:AWK:)) A small (()) by Alfred ((*A*))ho, Peter ((*W*))einberger, and Brian ((*K*))ernighan. == ((*B*)) : ((:Big Endian:)) The American Continent original inhabitants... are Indians. Here: ((*endian*)). The etymology is the people who eat the egg from a round edge, after Swift's "Gulliver's Travels." Naturally, the people who eat from a pointed edge are the ((<'Little' endian|Little Endian>)). In the computer industry, it is one of the forms when CPU etc. arrange (()). The networkers are said that they will like Big endian. See also "(())." : ((:Block:)) The one to compose loop with, to build house and wall with, or to hit person with. : ((:Bug:)) : ((:Built-In Class:)) (()) interpreter built-in class which the structure of (()) is different from usual (()). To define the class which inherits these classes is not recommended. A built-in class of (()) is as follows: * Array * Bignum * Class * (()) * FalseClass * File * Fixnum * Float * (()) * IO * (()) * Module * NilClass * Proc * Regexp * String * Struct * (()) * TrueClass : ((:Byte Order:)) Do you arrange four byte (()) 0x1234 with 1, 2, 3, 4? or 4, 3, 2, 1? The former way is called (()), and the latter is called (()). The controversy which is good continues from the preliterate era and till now the conclusion has not been reached yet. == ((*C*)) : ((:Class:)) : ((:Class Method:)) (()) of class. It is defined in class Class of all classes. Though there is a method which is common in all classes and a (()) which is proper to each class, that's not much of a problem. # of no consideration. Do not misunderstand that '((|(())|))' in the class method is a class. : ((:Coerce:)) (()) of converting type of numerical value. The numeric calculation method is set on, when the (()) which it doesn't know is passed as an argument, which the coerce method is used to convert it. The coerce method returns a pair of given (, and converted) value and itself (a converted value, if necessary), as its arguments. The converting order of numerical types of the library of (()) is as follows: Fixnum -> Bignum -> Rational -> Float -> Complex : ((:Constant:)) (()) which cannot change value once it is defined. ...Contradiction in terms? == ((*D*)) : ((:Data:)) Wrapper to show pointer at C level as (()) (()). It is made of C pointer, the mark function, and the free function. The person who tries to add the (()) to (()) by C should master the usage of this class, by all means. Contrary to that, it is a class that have no business with a person whose schedule has no chance to try it. : ((:defined?:)) Operator to examine whether the various expression is actually defined. It returns the string to show the type of the expression if defined, and returns nil if not defined. While defined? looks like the (()), it is the built-in operator of (()), and it doesn't evaluate arguments. Therefore, there'll be no output with: defined? print("abc\n") : ((:Destructive:)) (()) such as String#chop and Array#concat is said "It has destructive action", since they change the state of the (()), though the hardware is seldom put out of order. : ((:Dictionary:)) The one that can take the definition out of the item. Changed to the alias of "(())." In (()) (which can be called the origin of (()) (())) the (()) structure which corresponds to the hash was called "Dictionary." So there are specks of the crowd who are familiar with that term. : ((:document:)) The one that (()) is really bad at. He always says "the source itself should be the document. It even describes (()) perfectly." But no one agrees. This is the programmers' use and wont. Sigh. : ((:Dynamic Binding:)) To select an appropriate procedure ((())) on the operation according to the (()) type of its (()). The flexibility of the program is effected to be improved. One of the requirements for (()) (()). Dynamic binding is inevitable in (()) because there is no type in the (()). == ((*E*)) : ((:Eiffel:)) An (()) language. Young (()) has said to drop scales off his eyes by the book "Object-oriented Software Construction," written by the author of this language. Even so, (()) doesn't look like Eiffel at all, except the (()) end (with '((|(())|))') and a reserved word '((|rescue|)).' : ((:Encapsulation:)) To hide the algorithm of an internal structure and processing from outside, by the immediate operation to (()) only from a specific procedure (called the (())) which accompanies the type of data. See also "(())." In (()) it can be said that encapsulation will be compelled since it is impossible to refer to the (()) from non-method. : ((:end:)) Reserved word to which (()) structure is finished. According to a certain statistics, 33% of the person, who saw (()) first sees this, associates Pascal. (...trust it?) However, this form which does not pair with '((|begin|))' is actually the neighbor of Ada or (()) rather than Pascal. (()) do not to have offered to {} which had been accustomed and familiar with C and (()). It is from the following reasons: * Evasion of ambiguous simple / complex sentence problem For instance, in C, when you try to add a sentence on if (a==b) c(); and do as follows if (a==b) c(); d(); leads a confusing (()). This problem exists also in Pascal. * Evasion of dangling 'else' problem It is similar to the situation above-mentioned. If you write if (a==b) if (c==d) foo(); else bar(); it becomes annoying. To tell the truth, what you really meant is: if (a==b) { if (c==d) foo(); else bar(); } * Improvement of readability There is a person who thinks that closing the (()) in the word named 'end' is legible to program, though it is a debatable opinion. * Problems in sentence structure of '((|begin|))' and '((|case|))' Frankly speaking, (()) have tried to use the (()) 'end' several time only to have had a terrible time. Then, he examined to change to the grammar with {} for a time, but every time he abandoned it for the part of grammar of '((|begin|))' and '((|case|))' with no beauty. To tell the truth, this might be the first reason. : ((:ENV:)) (()) which operates same as (()) to access (()). Actually it is an (()) of the Object class which adds a (()). When the (()) is changed with this object, it is succeeded to the offspring process of (()). : ((:Environment Variable:)) Value which is delivered from parent process to offspring process. It is accessed with ((|(())|)). What is delivered to the offspring process is a copy of the environment (()), so it is not possible to pass informations from the offspring process to the parent by using the environment variable. The parent will not listen to the child. : ((:Exception:)) The one occurs in exceptional situation. when it occurs, unless it is caught explicitly by '((|rescue|))' paragraph of '((|begin|))', the call hierarchy is traced back and the execution of program ((())) is interrupted. The (()) program should thank exception, because it is able to (()) without checking an exceptional situation one by one, in almost all of the case. The information on the place where the exception is generated is stored in ((|$@|)), and the information on the exception itself is stored in ((|$!|)). # The latter is enlarged, since version 1.6, to be able # to use ((|=>|))(())-name. == ((*F*)) : ((:FAQ, Frequently Asked Questions:)) ...And the compiled answers of them. (()) FAQ is still developing now. Questions and answers are always welcome. : ((:Function:)) Strictly speaking, (()) has no functions. But the appearance of a method call with (()) left out is like a function, and furthermore, there is a (()) which we can describe it as a virtual function, ((|(())|)), (()), where no (()) informations are referred. Such methods are sometimes, in a torelant situation, called functions. Mostly such function(al method)s' visibility is set to private, so that they could not be called in the form which (()) is not omitted. The representative of that methods is (()). == ((*G*)) : ((:Global Variable:)) (()) which can be referred to anywhere in the program. ((*Danger!*)) Overuse deadlock. : ((:goto:)) One of which (()) doesn't have. Why ((|goto|))'s absent is not for the policy "it should not be anywhere," but for the fact "it's troublesome in implementation." In place of ((|goto|)), ((|catch|))/((|throw|)) or the (()) is used\ in (()). See also "(())." == ((*H*)) : ((:Hash:)) Data structure in (()) which expresses the mapping from key to value. It is also called "(())" or "(())." The derivation of hash is the algorithm which is called "Hash table" in the achievement of the structure. The word 'hash' means "cut in pieces", of "hashed beef." == ((*I*)) : ((:Immediate Value:)) The one in (()) that not (()) but actual value is stored. Only '((|Fixnum|))' and ((|nil|))/((|true|))/((|false|)) are immediate values in present (()). However, there's no law against another (()) which ((|Fixnum|)) is not immediate value, and also you can regard the all values on the model as a (()) to the (()). : ((:Inheritance:)) Do minimum in itself, and fully rely on what succeeded from the ancestor or the relative to deal the rest matter. In the real world, It should be an unpleasant fellow. Turned to establish a new class which adds the (()) to a certain class. Inheritance is effective to express the relation of is-a. For instance, "Student" class which describes the character of the general student can be succeeded to "Department of Engineering student (who is afflicted with the experiment)" class. When there is no is-a relation and the situation only shares the character and the function, it is assumed preferable to use (()). : ((:Initialize:)) Put the (()) (or "something") into "ready-to-use-it" state. The '((|initialize|))' (()) should be redefined to initialize the (()). The default definition of the method '((|new|))' of the class is to execute Initialize to the newly generated instance. The argument to ((|new|)) is tossed to initialize as it is. Moreover, when ((|new|)) is called with the (()), the block is given to initialize as it is. This surely means Class#new is not to have to be redefined. : ((:Instance:)) (()). There seems to be a meaning to emphasize belonging to the class where the object exists. It is heard that there are a lot of people who have failed in (()) (()) by confusing whether the one s/he touches is an object or an instance. : ((:Instance Variable:)) Intrinsic (()) to (()). The (()) variable of (()) is the one that applies @ just before the identifier. It can be referred only from inside of the (()). : ((:Iterator:)) Rehearser. The group of a certain code which can be passed to the (()) is called '(()).' Iterator is the method which the given block...this is surely the case. In general, the block is executed more than one time, so the method is called 'iterator' ("iterate" = repeat it); but there is a custom to call the case executing only once or not repeating, also iterator, insofar as the block is given to the method. Keep in mind, just the method have the 'repetition' as many as 0 or 1 time, do not call it liar, because it must be the 'repetition.' In the iterator, you can execute the block by '((|yield|)).' Ah, of course. Nothing happens to the method when the block is given of not evaluating the block internally. I wish you not to disappoint though the error does not occur either. == ((*J*)) : ((:Japanese (language):)) Native language of (()), the author of (()). The cause of the poor (()) of (()) (according to his excuse). == ((*K*)) # no entry. == ((*L*)) : ((:Little Endian:)) At first there're ten children and decreases one by one. In the computer industry, it is one of the forms when CPU etc. arrange (()). A certain CPU maker with very big share is said that they will like Little endian. See also "(())." : ((:Local Variable:)) (()) which can be referred only within a certain range. The range is called 'Scope'. The scope of (()) is among: * The entire program * Class and module definition * (()) definition * (()) and only (()) can access the local variable in the outside scope. An effective range of the local variable is from the place where the first substitution in scope appeared to an end of the scope. The effective range is fixed statically, and is unrelated whether actually executed. == ((*M*)) : ((:main:)) '((|(())|))' at top level. Since it can't be without self, it is a mere (()) of an (()) class, only for being there. Some (()) are defined to operate the Object class. Defined (()): * private * public * include : ((:MatchingData:)) (()) which shows state concerning match of regular expression. Value of (()) ((|$~|)). When the value of this variable is changed, the value of variable group (((|$1|)),((|$2|))...,((|$&|)),etc) concerning the regular expression changes, too. : ((:matz:)) (())'s author. His real name is 'Yukihiro Matsumoto.' If you say '((*You-Key-Hero Matz-motor*))' real quick, it sounds like his name. ('tz' as in 'waltz') : ((:Method:)) Operation to (()). You can refer to the object ((())) to be operated with (()). In (()), if you exclude the object of a (()), since the structure of the object is dynamically determined, the character of a certain object is determined by the method defined in the object. : ((:Mix-in:)) To make a new taste mixing various one with the ice cream. Changed into mix the module with the class, and add the (()). See also "(())." Multiple (()) is not adopted in (()). Instead, the inheritance for the is-a relation, and Mix-in for sharing the (()) is prepared. The purpose of this is the belief of (()) that the relations should be in chaos when multiple inheritance is abused. : ((:Module Function:)) In the (()) which is used like (()), the one defined both as a method of the module and a (()) is called module function. For instance, most methods of the ((|Math|)) module are the module functions. These methods is convenient because it can be used both in the form(for example): Math.sqrt(2) and include Math sqrt(2) == ((*N*)) : ((:Non-Local Exit:)) Non-local exit (or global exit) is not an escape within the ranges of the (()) such as ((|break|)), ((|next|)), ((|redo|)), ((|retry|)), and ((|return|)), but the type which interrupts going back the hierarchy of the method call as long as it's not caught. In (()) there are two way: by (()), or ((|catch|))/((|throw|)). Almost all exceptions can be caught with '((|rescue|))' (including ((|SystemExit|)) generated by exit), but the exception not significant to catching (example: Fail in memory allocation/interpreter's (())) does not become the (()) to catch. ((|catch|))/((|throw|)) is the one which, when '((|throw|))' is done, jumps at a dash to catch with the same tag as the tag specified. == ((*O*)) : ((:Object:)) A thing. The matter. Love, perhaps, is not an object, but love letter is an object. Whether something is an object or not strongly depends on YOUR philosophy. Might the cause that (()) (()) is difficult. Someone in the computer industry calls a specific space in computer memory as 'object.' (())ward guys... See also "(())," and "(())." : ((:Object-Oriented:)) (()), an adjective "Object-Oriented" has transcolored to an abstract noun, which means "the (())-based (())." Any kind of view looks OK at first as long as the object is the central concept, but in general, it seems that the (()) needs * (()), * (()), * and (()) (or (())). Someone deals it as a wild card or a kind of magic, but our life has a lot more. Twenty-odd years since the dawn, through all our fortunes, there comes to be a first stage of pragmatic use...perhaps...agreed? : ((:Object-Oriented Design:)) System design based on (()). ((*OOD*)). : ((:Object-Oriented Programming:)) Programming based on (()). ((*OOP*)). : ((:Object-Oriented Analysis:)) System analysis based on (()). ((*OOA*)). : ((:Override:)) (()). Define a (()) same name as the one defined on the super class or included method. In overridden method, '((|(())|))' can invoke the superior method with same name. == ((*P*)) : ((:Paradigm:)) An affected expression of a 'view.' You tame could use the plain word instead. : ((:Perl:)) Hmm.. Sounds familiar. What was that? # Practical Extract and Report Language, or Pathologically Eclectic Rubbish Lister. : ((:Polymorphism:)) To define actual operation as to an (()). (()) carries it out to choose the (()) according to the object of the (()). : Example: obj = "abc" print obj.length, "\n" # => 3 obj = [1,2,3,4] print obj.length, "\n" # => 4 : ((:Python:)) An (()) language. (())'s rival. "An elapsed serpent." If (()) was content with Python, (()) wouldn't be born now. Anxious most is length of the name. (Up to 6 characters!) == ((*Q*)) # no entry. == ((*R*)) : ((:Receiver:)) Operational subject of the (()). It is on the left of '((|.|))' or '((|::|))' of method call expression. In a method, it can be referred as '((|(())|)).' The (()) of the receiver is accessible in the form '((|@|))(())_name.' : ((:Redefinition:)) (()). Rewrite. # Treacherous (()). : ((:Reference:)) See also foobar. # See also hogehoge. : ((:Ruby:)) The name of the (()) (()) and its interpreter. The name 'ruby' is not an acronym. It's named after the red precious stone, which is the birthsone of July. Notice pearl((())) is the birthstone of June. == ((*S*)) : ((:Sather:)) An (()) language. (()) likes Sather rather than (()). But Sather doesn't look like (()) at all, either. : ((:Script:)) Scenario. Turned into a relatively short program where the interpreter works on. Of course there's a super-masterpiece. : ((:Scripting Language:)) Interpreter which handles batch operations after the (()). Man is also a scripting language on the point which reads script. : ((:self:)) Expression which refers to (()). Why it's called '((|self|))'? By one account, the (()) is the subject of the sentence where (()) is the verb, so from the method's standpoint it's itself, though it is strongly suspected that it's the mimic of (()) without deep account. : ((:Singleton Class:)) Virtual class only for the particular (()). : ((:Singleton Method:)) (()) which is defined only for the particular (()). Singleton method can be succeeded to other method(s) in the following case: * Cloned. * Made subclass(es). When the singleton method (()) the original method, the original method can be invoked to appear by '((|(())|))'. : ((:Smalltalk:)) An (()) language, which laid the groundwork of the (()) to this day, '(())' style. : ((:Sort:)) To arrange in order. (()) can sort anything, not only array, however complex, if only * they're countable (((|Enumerable|)) is included), * and the order is (i.e. ((|<=>|)) is) defined in each element. : ((:super:)) Technique to call upper level (()) from (()) method. When argument is omitted, super'ed slave can be called by the same argument as that of the master's method. : Question: If you change the value of (()) given as an argument, which 'super' gets, the original value, or the changed? def foo(a) print a end def self.foo(a) a=25 super end foo(5) # 5 or 25?? : Answer: the original one(((%5%))). == ((*T*)) : ((:Thread:)) ((*Thread of control*)), in original; a chain of control processes. In (()), more than one thread can exist in a program. == ((*U*)) : ((:undef:)) To set the (()) undefined. '((|undef|))' means that the particular method can be obviated, while (()) or (()) just adds class on the method. However, you'll pay for the lack of prudence when you '((|undef|))' the method which is called from inside of the method, which is crucial to the implementation od the class. == ((*V*)) : ((:Variable:)) A tag attached to an (()). (()) has (()), (()), class, and (()) variables. (()) has the same implication of tag, though it's not variable, since its value cannot be changed. == ((*W*)) # no entry. == ((*X*)) # no entry. == ((*Y*)) # no entry. == ((*Z*)) # no entry. =end