Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Продолжение перевода Глоссария VIP 6.3
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
5565610 5565610 вне форума
Member
 
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 10.07.2006
По умолчанию 07.08.2006, 12:37

name restrictions (ограничения на имена)
Next important restrictions are imposed on names:
1. Names of symbolic constants in clause sections must start with lower-case letters.
2. Names of variables must start with upper-case letters or the underscore ' _ ' character.
3. Symbolic filenames must start with lower-case letters.
The Visual Prolog compiler does not make a distinction between upper and lower case let-ters, except for the first letter. (See also: names, names belonging to lower-case identifiers.)
На имена наложены следующие серьезные ограничения:
1. Имена символьных констант в разделе clauses должны начинаться с маленькой буквы.
2. Имена переменных должны начинаться с большой буквы или со зна-ка подчеркивания.
3. Символьные имена файлов должны начинаться с маленькой буквы.
VIP не делает различия между большими и маленькими буквами, если они не явля-ются первыми.

names (имена)
Names are used to denote interfaces, classes, symbolic constants, domains, domain func-tors, predicates, facts sections, facts, fact variables, and variables. A name is a contiguous se-quence of letters, digits, and underscore characters. A name starts with a letter, or an underscore character, followed by any combination of zero or more letters, digits, and underscores up to 250 characters long. You cannot use spaces, the minus sign, asterisks, or slashes in names. The Vis-ual Prolog keywords are reserved words and should not be used as user-defined names. The Vis-ual Prolog compiler does not make a distinction between upper and lower case letters, except for the first letter. (See also: name restrictions, names belonging to lower-case identifiers.)
Имена используются для обозначения интерфейсов, классов, символьных констант, доменов, функторов доменов, предикатов, разделов фактов, фактов, фактов-переменных и переменных. Именем является последовательность букв, цифр, знаков подчеркивания. Имя начинается с буквы или знака подчеркивания, за которыми следуют последователь-ность букв, цифр и знаков подчеркивания длиной до 250 символов. В именах нельзя ис-пользовать пробелы, знаки минус, звездочки и слэши. Ключевые слова VIP являются заре-зервированными и не могут быть использованы для объявления пользовательских имен. VIP не делает различия между большими и маленькими буквами, если они не являются первыми.

names belonging to lower-case identifiers (имена, начинающиеся с маленькой буквы)
Names of interfaces, classes, domains, domain functors, predicates, facts sections, facts, and fact variables must be lower-case identifiers. Lower-case identifiers begin with a lower-case letter, followed by a sequence of letters, digits, and underscores. You cannot use spaces, the mi-nus sign, asterisks, slashes, or other non-alphanumeric characters in these names. They can be up to 250 characters long. (See also: names, name restrictions.)
Имена для обозначения интерфейсов, классов, доменов, функторов доменов, преди-катов, разделов фактов, фактов и факт-переменных. Эти имена начинается с маленькой буквы, за которыми следуют последовательность букв, цифр и знаков подчеркивания дли-ной до 250 символов. В именах нельзя использовать пробелы, знаки минус, звездочки, слэши и другие не алфавитные символы

nondeterm (не детерминированный)
By default, facts have nondeterm mode of determinism. By their very nature, predicates in facts sections are normally nondeterministic. Because facts can be added anytime at runtime, the compiler must normally assume that it is possible to find alternative solutions during backtrack-ing. If you have a predicate in a facts section for which you will never have more than one fact, you can prefacing the fact declaration with the keyword determ (or keyword single if the predi-cate must always have one and only one fact).
По умолчанию, факты имеют моду детерминизма nondeterm. По своей природе пре-дикаты в разделе фактов являются, как правило, не детерминированными. В связи с тем, что факты могут быть добавлены в любое время, компилятор должен учитывать возмож-ность поиска альтернативных решений в ходе бэктрекинга. Если вы применяете предикат в разделе facts, для которого никогда не будет более одного факта, вы можете предварить объявление фактов ключевым словом determ (или ключевым словом single, если предикат всегда будет иметь один, и только один факт).

object (объект)
An object is set of named object member predicates and a set of supported interfaces. Ob-jects actually also have a state, but this state can only be changed and observed through the member predicates. We say that the state is encapsulated in the object.
Объектом является набор именованных предикатов – членов объекта и набор под-держивающих интерфейсов. Объект также имеет состояние, но это состояние может быть изменено или просмотрено только с помощью предикатов членов. Говорят, что состояние инкапсулировано в объекте.

object members and state (члены объекта и состояние)
All objects that are constructed by a certain class have the same sets of object member predicates, but each object has its own state. Thus, the object member predicates is actually part of the class, whereas the state of the object is part of the object itself. A class also contains an-other set of named predicates and an encapsulated state, declared with the keyword 'class' and known as the class members and class state, respectively. The class members and the class state exist on a per class basis, whereas the object members and object state exist on a per object basis. The class state can be accessed both by class members and by object members.
Все объекты, которые сконструированы определенным классом, имеют одинаковые наборы предикатов, которые рассматриваются как члены объекта, но каждый из объектов имеет свое собственное состояние. Таким образом, предикаты, как члены объекта, факти-чески являются частью класса, тогда как состояние объекта относится только к самому объекту. Класс содержит еще один набор именованных предикатов и инкапсулированных состояний, объявленных с ключевым словом class, о которых говорят, как о членах класса и состоянии класса, соответственно. К состоянию класса могут получить доступ, как чле-ны класса, так и члены объекта

object state (состояние объекта)
The state of an object is stored in the object as its facts. These facts are declared in facts sections in the class implementation. Facts are local to each object (like other object entities), whereas class facts are shared among all objects of the class.
Состояние объекта хранится в объекте в виде фактов. Эти факты объявлены в под-разделе facts в разделе class implementation. Факты являются локальными для каждого объекта, тогда, как факты класса едины для всех объектов класса.

open qualification
opened scopes
Open qualifications are used to make references to class level entities more convenient. The open section brings the names of one scope into another scope, so that these can be refer-enced without qualification. An open qualification has no effect on the names of object members as these can only be accessed by means of an object anyway. Open sections have only effect in the scope in which they occur. For instance, an open section in a class declaration has no effect on the class implementation.
Open квалификация используется для более удобного доступа к элементам класса. Раздел open расширяет диапазон видимости, поэтому обращения к именам становится воз-можным без квалификаторов. Open квалификация не влияет на доступ к именам членов объекта, так как доступ к ним возможен через объект в любом случае. Open квалификация влияет на диапазон видимости того раздела, где она находится. Например, оpen квалифи-кация в разделе class declaration не влияет на раздел class implementation.

operator priority (приоритет операторов)
The hierarchy determines the order in which operators are evaluated in arithmetic expres-sions.
Иерархия, определяющая порядок исполнения операций в арифметическом выраже-нии.

operators (операторы)
In Visual Prolog we can use arithmetic, relational, and logical operators. The arithmetic operators are: +, -, *, /, div, mod. The relational operators are: >, <, >=, <=, <>, ><, and =. The logical operators are formulas, which takes formulas as arguments. They are all left associative. The operators ' , ' and ' and ' are synonyms and so are operators ' ; ' and ' or '.
В VIP можно использовать арифметические, логические операторы и операторы от-ношений. Арифметические операторы это: : +, -, *, /, div, mod. Операторы отношений это: >, <, >=, <=, <>, ><, and =. Логическими операторами являются формулы, которые при-нимают формулы, как аргументы. Все они лево ассоциированные. Операторы ' , ' и ' and ' являются синонимами, также как и операторы ' ; ' and ' or '.

or
Conjunction ( and ) & Disjunction ( or ).
A goal made up of two or more parts is known as a compound goal, and each part of the com-pound goal is called a sub-goal. You can use a compound goal to find a solution where both sub-goal A and sub-goal B are true (a conjunction), by separating the sub-goals with a comma ' , '. You can also find a solution where at least one of sub-goal A or sub-goal B is true (a disjunc-tion), by separating the sub-goals with a semicolon ' ; '.
Цель, состоящая из двух или нескольких частей называется составной целью, каждая из частей является подцелью. Можно использовать составную цель для поиска единого решения, при котором подцель А и подцель В успешно выполняются (коньюнкция). В этом случае обе подцели разделяются запятой - ', '. Можно искать решения, когда успеш-но исполняется хотя бы одна подцель, А или В (дизьюнкция). В этом случае обе подцели разделяются точкой с запятой - ' ; '.

origin interface of a predicate
The origin interface of a predicate is the interface in which the predicate is literally de-clared, as opposed to interfaces where it is indirectly declared by a supports qualification. (See also: supports qualification for interfaces.)
parameters (параметры)
Collective name for terms and variable names in a relation.
Общий термин для термов и имен переменных в отношении.
parent class (родительский класс)
The classes you inherit from are called parent classes or super-classes. Child class and sub-class is the dual to parent class, we also say that the child classes inherit from the parent classes. A child class can only access its parent classes through its public interface, i.e. it does not receive any extra permission than any other class, which uses the parent class.
Классы, от которых вы наследуете, называются родительскими классами или супер-классами. Порожденный класс двойственен родительскому классу, можно сказать, что по-рожденный класс является наследником родительского класса. Порожденный класс имеет доступ к своему родительскому классу только через public интерфейс, т.е. он не имеет преимуществ перед любым другим классом при обращении к родительскому классу.

predicate domains (домены предикатов)
In Visual Prolog you can declare and use the predicate domains. Values of a predicate do-main are predicates with the same "signature", i.e. the same argument and return types, the same flow pattern and the same (or stronger) predicate mode.
В VIP вы можете объявлять и использовать домены предикатов. Значениями домена предикатов являются предикаты с одинаковой сигнатурой. Т.е. одинаковые типы аргумен-тов и возвращаемых значений, одинаковые шаблоны ввода-вывода и одинаковые (или бо-лее строгие – см.) моды предикатов.
predicate values (значения предикатов)
Predicate values are predicates that can be treated as values in the sense that:
1. They can be passed as parameters and returned from predicates and func-tions.
2. They can be stored in facts.
3. They can be held in variables.
4. They can be compared for identity.
Of course, like "plain" predicates the predicate values can be called with appropriate argu-ments. The predicate values are declared as instances of predicate domains.
Значениями предикатов являются предикаты, которые могут быть обработаны как значения в следующих смыслах:
1. Они могут переданы как параметры и возвращены из предикатов и функций.
2. Они могут быть сохранены в фактах.
3. Они могут содержаться в переменных.
4. Они могут между собой сравниваться.
Конечно, подобно обычным предикатам, значения предикатов могут быть вызваны с соответствующими аргументами. Значения предикатов являются реализацией домена пре-дикатов.

predicates (предикаты)
Every Visual Prolog fact or rule belongs to some predicate, which specifies the name of the relation involved and the types of elements involved in the relation. The symbolic name of a re-lation is called the predicate name. The objects that it relates are called its arguments. In the fact likes("Bill", "Cindy") the relation likes is the predicate and the objects "Bill" and "Cindy" are the arguments.
Каждый факт или правило VIP принадлежат некоторому предикату, который опре-деляет имя отношения и типы элементов, которые включены в это отношение. Символь-ное имя отношения называется именем предиката. Элементы, включенные в отношение называются аргументами. В факте likes("Bill", "Cindy") отношение likes является предика-том, а элементы "Bill" и "Cindy" есть аргументы.

program sections (программный раздел)
You should use program sections to declare and define program entities in interfaces, classes, and class implementations. In general, there can be used: constants, domains, predicates, constructors, facts, clauses, and conditional sections. Not all sections can occur in all kinds of scopes, please refer to the description of Interfaces, Class Declarations, Class Implementations, and Conditional Compilation for further details.
Программные разделы должны использоваться для объявления и определения про-граммных элементов в интерфейсах, классах, и class implementations. В общем, имеется возможность использовать: constants, domains, predicates, constructors, facts, clauses, and conditional sections. Не все разделы могут быть использованы для всех диапазонов види-мости. Обратитесь за подробной информацией в описание Interfaces, Class Declarations, Class Implementations, и Conditional Compilation.

punctuation marks (знаки пунктуации)
Punctuation marks in Visual Prolog have syntactic and semantic meaning to the compiler, but do not specify by themselves an operation that yields a value. Some punctuation marks, ei-ther alone or in combination, can also be Visual Prolog operators. Punctuation marks are: ; ! , . # [ ] ( ) :- : :: .
Знаки пунктуации имеют для компилятора VIP семантическое и синтаксическое зна-чение, но сами по себе не определяют действий по получению результата. Некоторые зна-ки пунктуации, либо сами, либо в комбинации с другими, могут быть операторами VIP. Знаки пунктуации это: ; ! , . # [ ] ( ) :- : :: .

real (тип real)
Real domains are used to represent floating point numbers. The built-in domain real has the natural precision for the processor architecture. All arithmetic, comparison, and assignment op-erations are applied to values of real domain. The permitted number range is 1*10-307 to 1*10+308 i.e. (1e-307 to 1e+308). Values from integral domains are automatically converted to real numbers when necessary.
Домен real используется для представления чисел с плавающей точкой. Встроенный домен real имеет точность, зависящую от архитектуры процессора. Все арифметические операции, операции сравнения и присваивания применимы к значениям из домена real. Допускается диапазон чисел от 1е-307 до 1е+308. Если это необходимо, целые числа ав-томатически преобразуются в числа типа real.

reference items and domains (ссылки и ссылочные домены)
If an unbound variable is passed from one sub-goal to another, the domain containing the values to which the variable may eventually become bound must be declared as a reference do-main. Elements of such a domain are reference items.
Если не назначенная переменная передается от одной подцели другой, то домен, со-держащий значение, которое возможно будет назначено переменной, должен быть объяв-лен как reference domain. Составляющие элементы такого домена также являются ссы-лочными.

relation (отношение)
A name describing the manner in which a collection of objects (or objects and variables re-ferring to objects) are united together. The symbolic name of a relation is called the predicate name. The objects that it relates are called its arguments; in the fact likes("Bill", "Cindy"), the relation likes is the predicate and the objects "Bill" and "Cindy" are the arguments.
Способ объединения в одну конструкцию объектов (или объектов с переменными, ссылающимися на объекты). Символьное имя отношения называется именем предиката. Элементы, включенные в отношение называются аргументами. В факте likes("Bill", "Cindy") отношение likes является предикатом, а элементы "Bill" и "Cindy" есть аргумен-ты.

repeat ... fail combination (repeat ... fail комбинация)
A technique that can be used to avoid the tail recursion by using of Visual Prolog back-tracking mechanism instead.
Техника программирования, позволяющая избежать хвостовую рекурсию путем ис-пользования механизма бэктрекинга.


resolve qualification (регулирующая квалификация)
The use of a name must be unambiguous within its scope. If the name denotes a predicate, the predicate must be unambiguous with respect to number and type of arguments. Ambiguities related to calling predicates can be avoided by using qualified names. To resolve an ambiguity of which class should provide an implementation to a predicate, which come from the multiple in-heritance we use a resolve section. A resolve qualification is used to resolve an implementation from the specified source.
Использование имени должно быть бесконфликтным в пределах диапазона видимо-сти. Если имя обозначает предикат, то этот предикат не должен вступать в конфликт в от-ношении количества и типов аргументов. Неоднозначность при обращении к предикату может быть преодолена с использованием квалификатора имен. Для разрешения конфлик-та, возникающего при использовании классом некоторого предиката, конфликта, возник-шего из-за многократного наследования, следует использовать раздел resolve. Регули-рующая (resolve) квалификация используется для точного указания источника, в котором описано применение предиката.

return values (возвращаемые значения)
Predicates that return values is called functions. To define that a predicate returns a value you should (in the predicate declaration after the brackets with the list of arguments) place the -> punctuator and the domain for the returning value. In the clause definition the name of return value (prefixing with the = punctuator) should be specified directly after the clause head before the :- punctuator.
Предикат возвращающий значения называется функцией. Для того, чтобы предикат возвращал значения, в объявлении предиката после квадратных скобок со списком аргу-ментов поместите знаки пунктуации -> и определите домен для возвращаемого значения. В определении клозы имя возвращаемого значения с префиксом ‘=’ должно быть помеще-но сразу после заголовка клозы, перед знаком ‘:-‘.

root and universal types (коренные и универсальные типы)
Visual Prolog uses some internal types, called root types and universal types. Having a universal type means that it has any type, which contains its value. For example, a number literal like 1 does not have any particular type, it can be used as a value of any type that contains 1, in-cluding real types. Arithmetic operations are very liberal with their operand requirements. We say that arithmetic operands take root types as arguments. The integer root type is supertype of any integer type. Hence, any integer type can be converted to the integer root type, and, since the arithmetic operations exist for the root types, it means one of them will work on any integer do-mains.
VIP использует некоторые внутренние типы, называемые коренными и универсаль-ными типами. Иметь универсальный тип означает иметь любой тип, содержащийся в пе-ременной. Например, литерал 1 не имеет конкретного типа, он может быть использован как значение любого типа, который содержит 1, включая тип real. Арифметические опера-ции очень либеральны в отношении требований к своим операндам. Мы говорим, что арифметические операнды принимают коренные типы, как аргументы. Целочисленный коренной тип является супертипом любого целочисленного типа. Значит, любой целочис-ленный тип может быть конвертирован в целочисленный коренной тип. Если есть ариф-метическая операция для данного коренного типа, то она будет работать с любым цело-численным доменом.

rule (правило)
A relationship between a fact and a list of sub-goals, which must be satisfied for that fact to be true.
Взаимоотношение между фактом и списком подцелей, который должен быть удовле-творен, для того, чтобы факт был успешно доказан.

satisfying a sub-goal (удовлетворение подцелей)
The process by which Visual Prolog chooses values for any unbound variables (if possible) in such a way that the sub-goal is true according to the given clauses for the corresponding predicate.
Это процесс, при котором VIP выбирает значения для не назначенных переменных таким образом, чтобы все подцели были успешными с учетом заданных клоз для соответ-ствующего предиката.

scope of constructors (диапазон видимости конструктора)
The constructors belong to the scope in which the constructors section occurs (see class declaration and class implementation).
Конструктор имеет тот диапазон видимости, в котором расположен раздел construc-tors.

scope shadowing (перекрытие диапазона)
Declarations inside the current scope shadow names from other scopes (unless explicit qualification is used).
Объявление внутри текущего диапазона перекрывающего имени из другого диапазо-на (если не используется квалификатор).

scoping & visibility (диапазон и видимость)
Visual Prolog names can be used only in certain regions of a program. This area is called the scope of the name. An interface definition, a class declaration and a class implementation are scopes. Scope determines the visibility of a name, when class constructors are called, and when variables local to the scope are initialized. Scope also determines the "lifetime" of a name that does not denote a global extent element. (See also: Constructors and Finalization.) There are four kinds of scope:
1. Local (private) scope. A name declared within a class implementation is accessible only within that class implementation. This are domains, facts, predicates, and constants declared in the implementation and also clause variables.
2. Class scope. Names of class members have class scope. Class members can be accessed by the class name qualification className::ClassScopeName.
3. Object scope. Names of object members have object scope. They can be accessed only while an object exist Object members can be accessed only with reference (implicit This within class implementation) to an object identifier with qualification like objectID:ObjectScopeName.
4. Global scope. Names of interfaces and classes have the global scope. The global scope qualification :: can be used before these names. Predefined domains (char, string, symbol, integer, unsigned, real, binary, pointer, boolean, factdb), constants, and predicates are also global, that is they can also be qualified with ::.
Имена VIP могут использоваться только в определенных областях программы. Эти области называется диапазонами видимости имен. Определение интерфейса, объявление класса и раздел применения определяют диапазон видимости. Диапазон видимости опре-деляет видимость имени, когда вызывается конструктор класса и когда переменные, лока-лизованные в диапазоне видимости, инициализируются. Диапазон видимости, кроме того, определяет «время жизни» имени, которое не является глобальным. Существуют четыре вида диапазонов видимости:
1. Локальный (private) диапазон видимости. Имя, определенное внутри раздела class implementation, доступно только внутри этого раздела. Это могут быть имена доменов, фактов, предикатов, констант, и переменных, определенных в этом разделе.
2. Диапазон видимости класса. Имена членов класса имеют диапазон видимости класса.
3. Диапазон видимости объекта. Имена членов объектов имеют диапа-зон видимости объектов. Члены объекта доступны только с помощью ссылки (не-явное This внутри раздела class implementation) на идентификатор объекта с ис-пользованием квалификатора, например: objectID:ObjectScopeName.
4. Глобальный диапазон видимости. Имена интерфейсов и классов имеют глобальный диапазон видимости. Глобальный квалификатор ‘::’ может ис-пользоваться перед этими именами. Предопределенные домены: (char, string, sym-bol, integer, unsigned, real, binary, pointer, boolean, factdb), константы и предикаты также являются глобальными, то есть, они тоже могут квалифицироваться с помо-щью знака ‘::’.

sections (разделы)
You should use program sections to declare and define program entities in interfaces, classes, and class implementations. In general, there can be used: constants, domains, predicates, constructors, facts, clauses, and conditional sections. Not all sections can occur in all kinds of scopes, please refer to the description of Interfaces, Class Declarations, Class Implementations, and Conditional Compilation for further details.
Вы должны использовать программные разделы для объявления элементов програм-мы в интерфейсах, классах и применениях. В общем, там могут быть: константы, домены, предикаты, факты, клозы и условные разделы. Не все разделы могут иметь место в любых диапазонах видимости. Обратитесь, пожалуйста, к описанию разделов Interfaces, Class Declarations, Class Implementations, и Conditional Compilation за подробностями.

single alternate compound domains
If a compound domain consists of one functor alternative, then at the low representation level, it is considered as structure (not as union with the first element representing an alternative number) and has representation, which is binary compatible with the appropriate structure in language C.
Если составной объект является единственным, то с точки зрения языка низкого уровня, он рассматривается, как структура (а не union с первым элементом, представляю-щим собой альтернативные номера), и имеет представление, побайтно совместимое с со-ответствующей структурой языка С.

stack (стэк)
The part of memory used for parameter transfer to called predicates by Visual Prolog.
Часть памяти, используемой VIP для передачи параметров предикату.
stand-alone programs (независимое приложение)
Programs that can be run from an OS independently of the Prolog system. Visual Prolog can create stand-alone programs.
Программа, которая может быть запущена из операционной системы, независимо от системы Пролога. VIP может создавать независимые приложения.

standard (or built-in) domains (стандартные или встроенные домены)
Visual Prolog contains the embedded hidden class, which provides declarations and im-plementations to built-in domains, constants, and predicates. Each compilation unit implicitly contains the declaration of this embedded hidden class, but this class has the special internal name that cannot be referenced explicitly. You can use :: before names of built-in items. The built-in domains are: char, string, symbol, integer, unsigned, real, binary, pointer, boolean, factdb.
VIP содержит встроенный скрытый класс, который имеет разделы объявления и применения для встроенных доменов, констант и предикатов. Каждый компилируемый фрагмент программы неявно содержит объявление этого скрытого класса, этот класс име-ет специальное внутреннее имя, на которое нельзя сослаться явным образом. Вы можете использовать квалификатор ‘::’ перед именами встроенных элементов. Встроенными до-менами являются: char, string, symbol, integer, unsigned, real, binary, pointer, boolean, factdb.

state of an object (состояние объекта)
The state of an object is stored in the object as its facts. These facts are declared in facts sections in the class implementation. Facts are local to each object (like other object entities), whereas class facts are shared among all objects of the class.
Состояние объектов хранится в объектах в виде фактов. Эти факты объявляются в подразделе facts в разделе class implementation. Факты являются для каждого объекта ло-кальными (подобно другим элементам объекта), тогда как, факты класса доступны для всех объектов класса.

stronger predicate mode (строгость мод предикатов)
Predicate modes can be described by the following sets:
1. erroneous = ;
2. failure = Fail;
3. procedure = Succeed;
4. determ = Fail, Succeed;
5. multi = Succeed, BacktrakPoint;
6. nondeterm = Fail, Succeed, BacktrackPoint.
If Fail is in the set it means that the predicate can fail. If Succeed is in the set it means that the predicate can succeed. If BacktrackPoint is in the set it means that the predicate can return with an active backtrack point in it. If such a set, say failure, is a subset of another set, say non-determ, then we say that the mode is stronger than the other, i.e. failure is stronger than nonde-term.
Моды предикатов представляют собой следующие наборы:
7. erroneous = ;
8. failure = Fail;
9. procedure = Succeed;
10. determ = Fail, Succeed;
11. multi = Succeed, BacktrakPoint;
12. nondeterm = Fail, Succeed, BacktrackPoint.
Если в наборе имеется Fail, то это значит, что предикат может завершиться неудачей. Если в наборе имеется Succeed, то это означает, что предикат может завершиться успеш-но. Если в наборе имеется BacktrackPoint, то это означает, что предикат может вернуть ак-тивную точку бэктрекинга. Если некоторый набор, например, failure, является подмноже-ством другого набора, например, nondeterm, то говорят, что одна мода более строгая, чем другая, то есть, failure более строгая мода, чем nondeterm.

sub-class (подкласс)
The classes you inherit from are called parent classes or super-classes. Child class and sub-class is the dual to parent class, we also say that the child classes inherit from the parent classes. A child class can only access its parent classes through its public interface, i.e. it does not receive any extra permission than any other class, which uses the parent class.
Классы, из которых вы наследуете, называются родительскими классами или супер-классами. Порожденный класс или подкласс двойственен родительскому классу. Мы так-же говорим, что порожденный класс наследует от родительского класса. Порожденный класс имеет доступ к родительскому классу только через public interface, то есть, он не имеет преимуществ перед любым другим классом, который обращается к родительскому.

sub-component (подэлемент)
One of the sub-elements in a compound element. A compound element is a single element that consists of a collection of other sub-elements (called sub-components) and a describing name (functor). The sub-components are enclosed in parentheses and separated by commas. The functor is written just before the left parenthesis. For example, the following compound term consists of the functor author and three sub-components: author("Emily", "Bronte", 1818)
Один из подэлементов в составном элементе. Составной элемент является единым элементом, состоящим из набора других подэлементов (подкомпонентов) и имени (функ-тора). Подэлементы заключены в круглые скобки и разделены запятыми. Функтор запи-сывается перед левой скобкой. Например, следующий составной терм состоит из функто-ра author и трех подэлементов: author("Emily", "Bronte", 1818).

sub-element (подэлемент)
One of sub-elements in a compound element (of a compound domain).
Один из подэлементов составного элемента (compound domain).
sub-goal (подцель)
A relation, possibly involving elements or variables, which Visual Prolog must attempt to satisfy.
Отношение, возможно, включающее переменные, которые VIP пытается удовлетво-рить.

succeed (достижение цели)
A sub-goal that Visual Prolog cannot (?) satisfy. The fail/0 and the succeed/0 are two built-in nullary predicates. The fail/0 always fails and the succeed/0 always succeeds, besides this the predicates have no effect. The fail/0 predicate forces failure of a predicate and, hence, always causes backtracking.
Подцель, которая всегда удовлетворяется. Имеются два встроенных предиката fail/0 и the succeed/0 без аргументов. Предикат fail/0 всегда завершается неудачей, а succeed/0 всегда удачей. Никаких других действий эти предикаты не производят. Предикат fail/0 приводит к неудаче и, следовательно, всегда запускает механизм бэктрекинга.

super-class (суперкласс)
The classes you inherit from are called parent classes or super-classes. Child class and sub-class is the dual to parent class, we also say that the child classes inherit from the parent classes. A child class can only access its parent classes through its public interface, i.e. it does not receive any extra permission than any other class, which uses the parent class.
Классы, из которых вы наследуете, называются родительскими классами или супер-классами. Порожденный класс или подкласс, двойственен родительскому классу. Мы так-же говорим, что порожденный класс наследует от родительского класса. Порожденный класс имеет доступ к родительскому классу только через public interface, то есть, он не имеет преимуществ перед любым другим классом, который обращается к родительскому.

supports qualification for interfaces (квалификации в иерархиях)
Interfaces are structured in a supports hierarchy (the structure is a semi-lattice rooted in the interface object). If an object has a type denoted by an interface, then it also has the type of any supported interfaces. Therefore, the supports hierarchy is also a type hierarchy. We also say that the object supports the interface. If the interface is named X, then we say that the object is an X, or an X object. Supports qualifications can only be used in interface definitions and Class Im-plementations. Supports qualifications are used for two things:
1. Specifying that interface A extends interface B and, thereby, that the type A is a subtype of the type B.
2. Declaring (in implementation) that objects of a certain class "privately" have more object types, than the one specified as the construction type.
Supports is a transitive relation: if an interface A supports an interface B and B in turn sup-ports C, then A also supports C.
Интерфейсы являются структурами в поддерживающих иерархиях. Если некоторый объект имеет тип, указанный в интерфейсе, то он, одновременно, имеет тип любого под-держивающего интерфейса. Поэтому, поддерживающая иерархия является также иерархи-ей типов. Мы также говорим, что объект поддерживает интерфейс. Если интерфейс имеет имя Х, то мы говорим, что объект является Х, или Х-объект. Поддерживающая квалифи-кация может использоваться только в определениях интерфейсов и class Implementations. Поддерживающая квалификация имеет следующие применения:
1. Для указания того, что интерфейс А является расширением интер-фейса В, то есть, что тип А есть подтип В.
2. Для объявления (в разделе implementation) того, что объект опреде-ленного класса в секции private имеет больше объектных типов, чем указано в конструкторском типе.
Поддержка является транзитивным отношением: если интерфейс А поддерживает интерфейс В, а В, в свою очередь, поддерживает С, то А также поддерживает С.

tail of a list (хвост списка)
The list that remains when the first element of a given list (and its separating comma) are removed.
Список, остающийся после удаления первого элемента списка.
tail recursion optimization (хвостовая оптимизация рекурсии)
Action taken internally by the Visual Prolog system to reduce the space/time overhead of tail recursion in rules. Also, it is known as "last call optimization".
Действия, предпринимаемые VIP для уменьшения потерь пространства и времени в ходе хвосовой рекурсии правил. Также см. "last call optimization".


terms (термы)
A term is, strictly speaking, any Visual Prolog entity. Either an element from one of the domains of standard type, a list, a variable, or a compound term, i.e., a functor followed by a list of terms (optional arguments) enclosed in parentheses and separated by commas.
Строго говоря, термами являются любые элементы VIP. Это, либо элемент домена одного из стандартных типов, списка, переменной, либо составной терм, то есть, функтор, за которым следует список термов (необязательных аргументов), заключенные в круглые скобки и разделенные запятыми.


This variable (переменная This)
An object predicate is always invoked on an object. This object carries the object facts and is subsumed by the implementation of object predicates. The object predicate has access to this implicit object. We shall call the object "This". In every clause of every object predicate the vari-able This is implicitly defined and bound to "This" object. In a clause of an object member predicate other object member predicates can be called directly, because "This" is implicitly as-sumed for the operation. Members of super-classes can also be invoked directly, as long as it is unambiguous which method is called (see: Scoping & Visibility). Likewise, the object facts (which are stored in "This") can be accessed.
Объектный предикат всегда вызывается через объект. Этот объект содержит объект-ные факты и подразумевается при выполнении объектного предиката. Объектный преди-кат имеет доступ к неявному объекту. Мы будем называть этот объект «This». В каждом клозе объектного предиката переменная This неявно определяется и назначается этому объекту. Клоза предиката члена объекта может напрямую обратиться к другому предикату члену объекта так, как «This» неявно подразумевается при выполнении операций. Члены суперкласса также могут быть вызваны напрямую, поскольку совершенно ясно, какой из методов вызывается. Таким образом можно иметь доступ к объектным фактам (которые храняться в «This».

trail
The part of memory used by Visual Prolog to register the binding and unbinding of refer-ence variables.
Часть памяти, используемая VIP для регистрации назначений и освобождений ссы-лочных переменных.
type system (система типизирования)
The means by which all objects in a relation or all variables used as arguments in a relation are constrained to belong to domains corresponding to those used in the relevant predicate decla-ration(s).
Означает то, каким образом все объекты и переменные, используемые в качестве ар-гументов отношения ограничиваются в своей принадлежности доменам, которые соответ-ствуют доменам, используемым в объявлении предиката.

Unicode (Юникод)
Visual Prolog uses Unicode "wide (2-bites) characters". Unicode is a method of software character encoding that treats all characters as having a fixed width of two bytes. This method is used as an alternative to ANSI character encoding, which because it represents characters in one byte, is limited to 256 characters. Because Unicode can represent over 65,000 characters, it ac-commodates many languages whose characters are not represented in ANSI encoding. Unicode does not require the use of code pages, which ANSI uses to accommodate a limited set of lan-guages. Unicode is an improvement upon the Double-Byte Character Set (DBCS), which uses a mixture of 8-bit and 16-bit characters and still requires code pages. A "wide character" is a two-byte multilingual character code. Most characters used in modern computing worldwide, includ-ing technical symbols and special publishing characters, can be represented according to the Unicode specification as a wide character. Using wide characters simplifies programming with international character sets.
VIP использует Юникод. Юникод является методом кодировки символов, при кото-ром все символы кодируются двумя байтами. Это метод является альтернативным по от-ношению к кодировке ANSI, где символы кодируются одним байтом и число символов ограничено 256. Поскольку Юникод может представить более 65000 символов, он объе-диняет множество языков, чьи символы вообще отсутствуют в кодировке ANSI. Юникод не требует наличия кодовых страниц, которые ANSI использует для расширения ограни-ченного набора символов. Юникод имеет преимущества над Double-Byte Character Set (DBCS), который использует смесь 8- и 16-битовых символов и все еще требует наличия кодовых страниц. Двухбайтная кодировка является многоязычной. Большинство симво-лов, широко применяемых в современных компьютерах, включая технические символы и специальные символы для подготовки публикаций, могут быть представлены в Юникоде. Использование двухбайтных символов упрощает программирование с использованием международных наборов символов.

unification (унификация)
The process by which Visual Prolog tries to match a sub-goal against facts and the left hand side of rules in order either to satisfy that sub-goal, or to determine one or more further sub-goals necessary to evaluate the original sub-goal. When a predicate is called the arguments from the call is unified with the terms in the head of each clause. Unification is the process of binding variables in such a way that two terms become equal, making as few bindings as possible (i.e. leaving as much as possible open for further binding).
Процесс, при котором VIP пытается сопоставить некоторую подцель с фактами и ле-вой частью правил для того, чтобы, либо удовлетворить эту подцель, или определить дальнейшие подцели, необходимые для оценки первой подцели. Когда происходит обра-щение к предикату, аргументы унифицируются с термами в заголовке каждой клозы. Уни-фикация является таким процессом, при котором переменные назначаются так, чтобы термы стали равны, выполняя при это наименьшее число назначений, т.е. оставляя макси-мальные возможности для дальнейших назначений.

universal and root types (универсальные и коренные типы)
Visual Prolog uses some internal types, called root types and universal types. Having a universal type means that it has any type, which contains its value. For example, a number literal like 1 does not have any particular type, it can be used as a value of any type that contains 1, in-cluding real types. Arithmetic operations are very liberal with their operand requirements. We say that arithmetic operands take root types as arguments. The integer root type is supertype of any integer type. Hence, any integer type can be converted to the integer root type, and, since the arithmetic operations exist for the root types, it means one of them will work on any integer do-mains.
VIP использует некоторые внутренние типы, называемые коренными и универсаль-ными типами. Иметь универсальный тип означает иметь любой тип, содержащийся в пе-ременной. Например, литерал 1 не имеет конкретного типа, он может быть использован как значение любого типа, который содержит 1, включая тип real. Арифметические опера-ции очень либеральны в отношении требований к своим операндам. Мы говорим, что арифметические операнды принимают коренные типы, как аргументы. Целочисленный коренной тип является супертипом любого целочисленного типа. Значит, любой целочис-ленный тип может быть конвертирован в целочисленный коренной тип. Если есть ариф-метическая операция для данного коренного типа, то она будет работать с любым цело-численным доменом.

variable binding (назначение переменных)
The status - free or bound - of a variable.
Статус переменной – свободная или назначенная.

variables (переменные)
Variables are names starting with an upper-case letter or with an underscore ( _ ), after which any number of letters (upper-case or lower-case), digits, or underscore characters can be used.
A single underscore character represents the anonymous variable. The anonymous variable is used when the value of that variable is not of interest.
If a variable occurs only once in the clause and its name starts with underscore then Visual Prolog compiler will consider this variable as an anonymous variable.
Prolog variables are local, not global. That is, if two clauses each contain a variable called X, these X-s are two distinct variables. They may get bound to each other if they happen to be brought together during unification, but ordinarily they have no effect on each other.
Variables in Prolog are immutable, once they are bound to a value they retain that value, unless backtracking unbinds the variable again.
Переменными являются имена, начинающиеся с большой буквы или со знака под-черкивания (_), после которых могут использоваться любое количество букв (больших и маленьких), цифр и знаков подчеркивания. Единственный знак подчеркивания представ-ляет имя анонимной переменной. Анонимные переменный используются, когда значение переменной не представляет интереса. Если некоторая переменная встречается в клозе только один раз и ее имя начинается со знака подчеркивания, то компилятор VIP будет рассматривать эту переменную как анонимную.
Переменные в Прологе являются локальными, а не глобальными. Это означает, что если в двух разных клозах имеется переменная с именем Х, то эти переменные Х являют-ся различными переменными. Они могут быть назначены одна другой, если произойдет их совмещение в процессе унификации, но обычно они между собой никак не связаны. Пе-ременные в Прологе не изменяемы, получив однажды назначение, переменная хранит его, пока в ходе бэктрекинга не освободится опять.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
продолжение SOS andrei1 Техническая поддержка 0 16.11.2011 12:43
продолжение SOS andrei1 Любые вопросы от новичков 5 14.11.2011 19:25
прога для перевода с английского kadriolina Любые вопросы от новичков 11 02.11.2011 01:21
Warcraft III FT - Evil Core продолжение новичЁк Компьютерные игры 1 02.10.2011 22:30
Программа перевода числа из 10 СС в 2 СС Gock C++ Builder 18 25.02.2010 09:11
В продолжение темы о настройках http прокси c++ Мысли вслух 0 22.11.2007 14:19
Попытка перевода Глоссария к VIP 6.3 5565610 Prolog 0 07.08.2006 12:27
Продолжение алгоритма Евклида Dill Delphi 0 22.05.2006 00:29
В продолжение темы про LowerCase Gedeon Мысли вслух 6 27.12.2005 18:07
Методы машинного перевода! imported_Любитель Prolog 3 02.05.2005 10:20
В продолжение закрытой темы от Garik про вложенные запросы Anonymous SQL 1 28.08.2003 00:55
Athlon и Pentium IV: Продолжение следует. Olesya Офтопик 26 24.07.2003 16:18



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов