Sodium–sulfur battery: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Monkbot
 
en>Smokefoot
improve lede ref with recent review, rm see also link to LBL, basically advert
 
Line 1: Line 1:
{{Refimprove|date=December 2010}}
No matter how good your content is visitors won't keep coming back if your site is hard to access or is slow loading. Leave a great comment and people will come visit your site because the mentality is: "if this person has this great thing to say, I wonder what they have to say on their own blog!" Create a video - Videos are very easy to create due to the ease of using webcams and online editing services. Indeed they may be one of the best serves you can ever find and they are inside my 'A list' and listed below are the keypoints of Hostgator's success. Learn why you should use hostgator for your hosting requirements and why [http://support.groupsite.com/entries/33292924-Hostgator-Outgoing-Mail-Server hostgator coupons] are useful for your online business. The good news is that I no longer waste time playing spider solitaire. Aside from the hosting options that they have on provide, which could match any want, finances and life style, they have also devised approaches by which a subscriber will be capable to effortlessly produce his or her internet site even devoid of mastering any technical know how of web site constructing. This usually means employing wind and solar powered energy sources. You want to sale the site as much as possible. Hostgator has taken care of it they are almost up all the time. One has to carefully sift and analyze factors such as the history of the company, services bouquet, customer care and support reliability, uptime guaranties, bandwidth on offer, etc.<br><br><br><br><br><br>[http://www.google.de/url?url=https://www.facebook.com/HostgatorCoupons2015&rct=j&q=&esrc=s&sa=U&ei=z6vsVM7DMYPWatL9gdAL&ved=0CEoQFjAH&usg=AFQjCNGq9ygbdBlYfIjKMKArmzUAd7eUCw google.de]We restored our new computers were purchased and offsite backup, and by early afternoon we were back in business. As the percentage of online shoppers increases, you need to have a calling card that displays your work and provide compelling excerpts and cover art (you'd be surprised how many people do buy a book just from looking at the cover). If we solve the problem, we moved to HostGator. Another fantastic thing that I love about Hostgator Is that they dont outsource their support team to other organizations,they actually comprise of a dedicated team that know what they have to do. I would suggest their own providers to anybody who is looking for a web web hosting account. If so then you will want to find the best hosting plan for your web pages. You'll then have to add a suffix of some sort ( "site" "online" "biz" "now" etc.) to get a niche blog started. Don't be afraid to look for help if you're not perfectly familiar with some aspect of the features considered in the web hosting reviews you're reading as well - it's important that you're fully aware of what you're buying and how well it can work for you, and this means that you may sometimes require extra assistance to clear something up.
The '''Guarded Command Language''' ('''GCL''') is a language defined by [[Edsger Dijkstra]] for [[predicate transformer semantics]].<ref name="EWD472">{{cite web | last=Dijkstra | first=Edsger W | authorlink=E. W. Dijkstra | url=http://www.cs.utexas.edu/users/EWD/ewd04xx/EWD472.PDF |format=PDF| title=EWD472: Guarded commands, non-determinacy and formal. derivation of programs. | accessdate=August 16, 2006 }}</ref> It combines programming concepts in a compact way, before the program is written in some practical programming language. Its simplicity makes proving the correctness of programs easier, using [[Hoare logic]].
 
==Guarded command==
The guarded command is the most important element of the guarded command language. In a guarded command, just as the name says, the command is "guarded". The guard is a [[proposition]], which must be true before the statement is [[execution (computers)|executed]]. At the start of that statement's execution, one may assume the guard to be true. Also, if the guard is false, the statement will not be executed. The use of guarded commands makes it easier to prove the [[computer program|program]] meets the [[program specification|specification]]. The statement is often another guarded command.
 
===[[Syntax (programming languages)|Syntax]]===
A guarded command is a [[statement (programming)|statement]] of the form G <math>\rightarrow</math> S, where
* G is a [[proposition]], called the guard
* S is a statement
 
If G is true, the guarded command may be written simply S.
 
===[[Semantics]]===
At the moment G is encountered in a calculation, it is evaluated.
* If G is true, execute S
* If G is false, look at the context to decide what to do (in any case, do not execute S)
 
==Skip and Abort==
Skip and Abort are very simple as well as important statements in the guarded command language. Abort is the undefined instruction: do anything. The abort statement does not even need to terminate. It is used to describe the program when formulating a proof, in which case the proof usually fails. Skip is the empty instruction: do nothing. It is used in the program itself, when the syntax requires a statement, but the programmer does not want the machine to change [[state (computer science)|state]]s.
 
===Syntax===
'''skip'''
 
'''abort'''
 
===Semantics===
* Skip: do nothing
* Abort: do anything
 
==[[Assignment (computer programming)|Assignment]]==
Assigns values to [[Variable (programming)|variables]].
 
===Syntax===
v := E
or
v0, v1, ..., vn := E0, E1, ..., En
 
where
* v are program variables
* E are expressions of the same [[data type]] as their corresponding variables
 
==[[Concatenation]]==
Assignments are separated by one semicolon (;)
 
==[[Conditional (programming)|Selection]]: ''if''==
 
The selection (often called the "conditional statement" or "if statement") is a list of guarded commands, of which one is chosen to execute. If more than one guard is true, one statement is nondeterministically chosen to be executed. If none of the guards are true, the result is undefined. Because at least one of the guards must be true, the empty statement "skip" is often needed.
 
===Syntax===
'''if''' G0 <math>\rightarrow</math> S0
| G1 <math>\rightarrow</math> S1
...
| Gn <math>\rightarrow</math> Sn
'''fi'''
 
===Semantics===
Upon execution of a selection all guards are evaluated. If none of the guards evaluates to true then execution of the selection aborts, otherwise one of the guards that has the value true is chosen non-deterministically and the corresponding statement is executed.<ref name="Kal90">{{citation | author=Anne Kaldewaij | title=Programming: The Derivation of Algorithms | publisher=Prentice Hall | year=1990}}</ref>
 
===Examples===
====Simple====
In [[pseudocode]]:
:if a < b then c := True
:else c := False
 
In guarded command language:
'''if''' a < b <math>\rightarrow</math> c := true
| a ≥ b <math>\rightarrow</math> c := false
'''fi'''
 
====Use of Skip====
In pseudocode:
:if error = True then x := 0
 
In guarded command language:
'''if''' error = true <math>\rightarrow</math> x := 0
| error = false <math>\rightarrow</math> '''skip'''
'''fi'''
 
If the second guard is omitted and error = False, the result is abort.
 
====More guards true====
'''if''' a ≥ b <math>\rightarrow</math> max := a
| b ≥ a <math>\rightarrow</math> max := b
'''fi'''
 
If a = b, either a or b is chosen as the new value for the maximum, with equal results. However, someone [[implementation|implementing]] this, may find that one is easier or faster than the other. Since there is no difference to the programmer, he is free to implement either way.
 
==[[Control flow#Loops|Repetition]]: ''do''==
The repetition executes the guarded commands repeatedly until none of the guards are true. Usually there is only one guard.
 
===Syntax===
'''do''' G0 <math>\rightarrow</math> S0
| G1 <math>\rightarrow</math> S1
...
| Gn <math>\rightarrow</math> Sn
'''od'''
 
===Semantics===
Upon execution of a repetition all guards are evaluated. If all guards evaluate to false then skip is executed. Otherwise one of the guards that has value true is chosen non-deterministically and the corresponding statement is executed after which the repetition is executed again.
 
=== Examples ===
====Original [[Euclidean algorithm]]====
a, b := A, B;
'''do''' a < b <math>\rightarrow</math> b := b - a
| b < a <math>\rightarrow</math> a := a - b
'''od'''
 
This repetition ends when a = b, in which case a and b hold the [[greatest common divisor]] of A and B.
 
====[[Extended Euclidean algorithm]]====
a, b, x, y, u, v := A, B, 1, 0, 0, 1;
'''do''' b ≠ 0 <math>\rightarrow</math>
    q, r := a '''div''' b, a '''mod''' b;
    a, b, x, y, u, v := b, r, u, v, x - q*u, y - q*v
'''od'''
 
This repetition ends when b = 0, in which case the variables hold the solution to [[Bézout's identity]]: xA + yB = gcd(A,B) .
 
== Applications ==
=== Programs correct by construction ===
 
Generalizing the observational [[Congruence relation|congruence]] of Guarded Commands into a [[Lattice (order)|lattice]] has led to [[Refinement Calculus]].<ref>{{cite web | title = On the Correctness of Refinement Steps in Program Development (Phd-Thesis) | last=Back | first=Ralph J | authorlink=Ralph-Johan_Back | url=http://crest.abo.fi/publications/public/1978/OnTheCorrectnessOfRefinementStepsInProgramDevelpmentTR.pdf | format=pdf | year=1978 }}</ref> This has been mechanized in [[Formal Methods]] like [[B-Method]] that allow one to formally derive programs from their specifications.
 
=== Asynchronous Circuits ===
 
Guarded commands are suitable for [[Quasi Delay Insensitive]] circuit design because the repetition
allows arbitrary relative delays for the selection of different commands. In this application,
a logic gate driving a node ''y'' in the circuit consists of two guarded commands, as follows:
 
PullDownGuard <math>\rightarrow</math> y := 0
PullUpGuard <math>\rightarrow</math> y := 1
 
''PullDownGuard'' and ''PullUpGuard'' here are functions of the logic gate's inputs,
which describe when the gate pulls the output down or up, respectively. Unlike classical
circuit evaluation models, the repetition for a set of guarded commands (corresponding to an asynchronous circuit) can accurately describe all possible dynamic behaviors of that circuit.
Depending on the model one is willing to live with for the electrical circuit elements,
additional restrictions on the guarded commands may be necessary for a guarded-command description
to be entirely satisfactory. Common restrictions include stability, non-interference, and absence
of self-invalidating commands.<ref name="synthesis_tr">{{cite web | title=Synthesis of Asynchronous VLSI Circuits|last=Martin | first=Alain J | url=http://resolver.caltech.edu/CaltechCSTR:1991.cs-tr-93-28 }}</ref>
 
=== Model Checking ===
Guarded commands are used within the [[Promela]] programming language, which is used by the [[SPIN model checker]].  SPIN verifies correct operation of concurrent software applications.
 
=== Other ===
The Perl module [https://metacpan.org/module/Commands::Guarded Commands::Guarded] implements a deterministic, rectifying variant on Dijkstra's guarded commands.
 
== References ==
 
<references />
 
[[Category:Logic programming]]
[[Category:Dutch inventions]]

Latest revision as of 14:46, 26 February 2014

No matter how good your content is visitors won't keep coming back if your site is hard to access or is slow loading. Leave a great comment and people will come visit your site because the mentality is: "if this person has this great thing to say, I wonder what they have to say on their own blog!" Create a video - Videos are very easy to create due to the ease of using webcams and online editing services. Indeed they may be one of the best serves you can ever find and they are inside my 'A list' and listed below are the keypoints of Hostgator's success. Learn why you should use hostgator for your hosting requirements and why hostgator coupons are useful for your online business. The good news is that I no longer waste time playing spider solitaire. Aside from the hosting options that they have on provide, which could match any want, finances and life style, they have also devised approaches by which a subscriber will be capable to effortlessly produce his or her internet site even devoid of mastering any technical know how of web site constructing. This usually means employing wind and solar powered energy sources. You want to sale the site as much as possible. Hostgator has taken care of it they are almost up all the time. One has to carefully sift and analyze factors such as the history of the company, services bouquet, customer care and support reliability, uptime guaranties, bandwidth on offer, etc.





google.deWe restored our new computers were purchased and offsite backup, and by early afternoon we were back in business. As the percentage of online shoppers increases, you need to have a calling card that displays your work and provide compelling excerpts and cover art (you'd be surprised how many people do buy a book just from looking at the cover). If we solve the problem, we moved to HostGator. Another fantastic thing that I love about Hostgator Is that they dont outsource their support team to other organizations,they actually comprise of a dedicated team that know what they have to do. I would suggest their own providers to anybody who is looking for a web web hosting account. If so then you will want to find the best hosting plan for your web pages. You'll then have to add a suffix of some sort ( "site" "online" "biz" "now" etc.) to get a niche blog started. Don't be afraid to look for help if you're not perfectly familiar with some aspect of the features considered in the web hosting reviews you're reading as well - it's important that you're fully aware of what you're buying and how well it can work for you, and this means that you may sometimes require extra assistance to clear something up.