OLD | NEW |
---|---|
1 \documentclass{article} | 1 \documentclass{article} |
2 \usepackage{epsfig} | 2 \usepackage{epsfig} |
3 \usepackage{dart} | 3 \usepackage{dart} |
4 \usepackage{bnf} | 4 \usepackage{bnf} |
5 \usepackage{hyperref} | 5 \usepackage{hyperref} |
6 \newcommand{\code}[1]{{\sf #1}} | 6 \newcommand{\code}[1]{{\sf #1}} |
7 \title{Dart Programming Language Specification \\ | 7 \title{Dart Programming Language Specification \\ |
8 {\large Version 1.4}} | 8 {\large Version 1.4}} |
9 %\author{The Dart Team} | 9 %\author{The Dart Team} |
10 \begin{document} | 10 \begin{document} |
(...skipping 5205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5216 A {\em part header} begins with \PART{} \OF{} followed by the name of the libr ary the part belongs to. A part declaration consists of a part header followed by a sequence of top-level declarations. | 5216 A {\em part header} begins with \PART{} \OF{} followed by the name of the libr ary the part belongs to. A part declaration consists of a part header followed by a sequence of top-level declarations. |
5217 | 5217 |
5218 Compiling a part directive of the form \code{\PART{} $s$;} causes the Dart syste m to attempt to compile the contents of the URI that is the value of $s$. The to p-level declarations at that URI are then compiled by the Dart compiler in the s cope of the current library. It is a compile-time error if the contents of the U RI are not a valid part declaration. It is a static warning if the referenced pa rt declaration $p$ names a library other than the current library as the library to which $p$ belongs. | 5218 Compiling a part directive of the form \code{\PART{} $s$;} causes the Dart syste m to attempt to compile the contents of the URI that is the value of $s$. The to p-level declarations at that URI are then compiled by the Dart compiler in the s cope of the current library. It is a compile-time error if the contents of the U RI are not a valid part declaration. It is a static warning if the referenced pa rt declaration $p$ names a library other than the current library as the library to which $p$ belongs. |
5219 | 5219 |
5220 \subsection{Scripts} | 5220 \subsection{Scripts} |
5221 \label{scripts} | 5221 \label{scripts} |
5222 | 5222 |
5223 A {\em script} is a library whose exported namespace (\ref{exports}) includes a top-level function \code{main}. | 5223 A {\em script} is a library whose exported namespace (\ref{exports}) includes a top-level function \code{main}. |
5224 A script $S$ may be executed as follows: | 5224 A script $S$ may be executed as follows: |
5225 | 5225 |
5226 First, $S$ is compiled as a library as specified above. Then, the top-level func tion \code{main} that is in the exported namespace of $S$ is invoked. If \code{m ain} has no formal parameters, it is invoked with no arguments. Otherwise \code{ main} is invoked with a single actual argument whose type implements \code{List$ <$String$>$}. It is a run time error if $S$ does not declare or import a top-lev el function \code{main}. It is a static warning if \code{main} has more than one required parameter. | 5226 First, $S$ is compiled as a library as specified above. Then, the top-level func tion \code{main} that is in the exported namespace of $S$ is invoked. If \code{m ain} has no formal parameters, it is invoked with no arguments. Otherwise if \co de{main} has exactly one parameter, it is invoked with a single actual argument whose type implements \code{List$<$String$>$}. Otherwise \code{main} is invoked with the following two actual arguments: |
Lasse Reichstein Nielsen
2014/05/15 20:44:48
I believe the way it is implemented, and the way i
| |
5227 \begin{enumerate} | |
5228 \item An object whose type implements \code{List$<$String$>$}. | |
5229 \item The initial message of the current isolate $i$ as determined by the invoca tion of \code{Isolate.spawnUri} that spawned $i$. | |
5230 \end{enumerate} | |
5231 | |
5232 It is a run time error if $S$ does not declare or import a top-level function \c ode{main}. It is a static warning if \code{main} has more than two required para meters. | |
5227 | 5233 |
5228 \commentary { | 5234 \commentary { |
5229 If \code{main} requires more than one argument, a run time error will occur. | 5235 Note that if \code{main} requires more than two arguments, a run time error will occur. |
5230 } | 5236 } |
5231 | 5237 |
5232 \rationale{ | 5238 \rationale{ |
5233 The names of scripts are optional, in the interests of interactive, informal use . However, any script of long term value should be given a name as a matter of g ood practice. | 5239 The names of scripts are optional, in the interests of interactive, informal use . However, any script of long term value should be given a name as a matter of g ood practice. |
5234 } | 5240 } |
5235 | 5241 |
5236 \commentary { | 5242 \commentary { |
5237 A Dart program will typically be executed by executing a script. | 5243 A Dart program will typically be executed by executing a script. |
5238 } | 5244 } |
5239 | 5245 |
(...skipping 691 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5931 \item The names of compile time constant variables never use lower case letters. If they consist of multiple words, those words are separated by underscores. Ex amples: PI, I\_AM\_A\_CONSTANT. | 5937 \item The names of compile time constant variables never use lower case letters. If they consist of multiple words, those words are separated by underscores. Ex amples: PI, I\_AM\_A\_CONSTANT. |
5932 \item The names of functions (including getters, setters, methods and local or l ibrary functions) and non-constant variables begin with a lowercase letter. If t he name consists of multiple words, each word (except the first) begins with an uppercase letter. No other uppercase letters are used. Examples: camlCase, dar t4TheWorld | 5938 \item The names of functions (including getters, setters, methods and local or l ibrary functions) and non-constant variables begin with a lowercase letter. If t he name consists of multiple words, each word (except the first) begins with an uppercase letter. No other uppercase letters are used. Examples: camlCase, dar t4TheWorld |
5933 \item The names of types (including classes and type aliases) begin with an uppe r case letter. If the name consists of multiple words, each word begins with an uppercase letter. No other uppercase letters are used. Examples: CamlCase, D art4TheWorld. | 5939 \item The names of types (including classes and type aliases) begin with an uppe r case letter. If the name consists of multiple words, each word begins with an uppercase letter. No other uppercase letters are used. Examples: CamlCase, D art4TheWorld. |
5934 \item The names of type variables are short (preferably single letter). Examples : T, S, K, V , E. | 5940 \item The names of type variables are short (preferably single letter). Examples : T, S, K, V , E. |
5935 \item The names of libraries or library prefixes never use upper case letters. I f they consist of multiple words, those words are separated by underscores. Exam ple: my\_favorite\_library. | 5941 \item The names of libraries or library prefixes never use upper case letters. I f they consist of multiple words, those words are separated by underscores. Exam ple: my\_favorite\_library. |
5936 \end{itemize} | 5942 \end{itemize} |
5937 } | 5943 } |
5938 | 5944 |
5939 | 5945 |
5940 \end{document} | 5946 \end{document} |
OLD | NEW |