-
-
Notifications
You must be signed in to change notification settings - Fork 85
/
ats.scroll
142 lines (119 loc) · 4.55 KB
/
ats.scroll
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
import ../code/conceptPage.scroll
id ats
name ATS
appeared 2013
creators Hongwei Xi
tags pl
website http://www.ats-lang.org/
standsFor Applied Type System
aka ATS/Postiats
aka Postiats
isOpenSource true
fileType text
monaco postiats
rosettaCode http://www.rosettacode.org/wiki/Category:ATS
centralPackageRepositoryCount 0
country United States
originCommunity Boston University
helloWorldCollection Applied Type System
// Hello world in ATS
implement main () = begin
print ("Hello, world!"); print_newline ()
end
rijuRepl https://riju.codes/ats
example
val _ = print ("Hello, world!\n")
implement main0 () = ()
description Programming language designed to unify programming with formal specification
fileExtensions sats dats cats hats
website http://www.ats-lang.org/
gitRepo https://github.com/githwxi/ATS-Postiats
keywords abstype abst0ype absprop absview absvtype absviewtype absvt0ype absviewt0ype as and assume begin classdec datasort datatype dataprop dataview datavtype dataviewtype do end extern extype extvar exception fn fnx fun prfn prfun praxi castfn if then else ifcase in infix infixl infixr prefix postfix implmnt implement primplmnt primplement import let local macdef macrodef nonfix symelim symintr overload of op rec sif scase sortdef sta stacst stadef static staload dynload try tkindef typedef propdef viewdef vtypedef viewtypedef prval var prvar when where with withtype withprop withview withvtype withviewtype
lineCommentToken //
multiLineCommentTokens (* *)
hasLineComments true
// A comment
hasComments true
// A comment
hasMultiLineComments true
(* A comment
*)
hasSemanticIndentation false
hasFunctions true
hasConditionals true
wikipedia https://en.wikipedia.org/wiki/ATS_(programming_language)
example
#define BUFLEN 10
var !p_buf with pf_buf = @[byte][BUFLEN](0) // pf_buf = @[byte][BUFLEN](0) @ p_buf[14]
related dependent-ml ml ocaml c
summary ATS (Applied Type System) is a programming language designed to unify programming with formal specification. ATS has support for combining theorem proving with practical programming through the use of advanced type systems. A past version of The Computer Language Benchmarks Game has demonstrated that the performance of ATS is comparable to that of the C and C++ programming languages. By using theorem proving and strict type checking, the compiler can detect and prove that its implemented functions are not susceptible to bugs such as division by zero, memory leaks, buffer overflow, and other forms of memory corruption by verifying pointer arithmetic and reference counting before the program compiles. Additionally, by using the integrated theorem-proving system of ATS (ATS/LF), the programmer may make use of static constructs that are intertwined with the operative code to prove that a function attains its specification.
pageId 19905196
dailyPageViews 71
created 2008
backlinksCount 20
revisionCount 295
appeared 2013
domainName ats-lang.org
registered 2007
awisRank
2022 5478886
githubBigQuery ATS
repos 46
users 26
linguistGrammarRepo https://github.com/steinwaywhw/ats-mode-sublimetext
firstCommit 2013
lastCommit 2016
committerCount 7
commitCount 46
sampleCount 9
example
(* ****** ****** *)
//
// HX-2013-11
//
// Implementing a variant of
// the problem of Dining Philosophers
//
(* ****** ****** *)
//
#include "share/atspre_define.hats"
#include "share/atspre_staload.hats"
//
(* ****** ****** *)
staload "{$LIBATSHWXI}/teaching/mythread/SATS/mythread.sats"
(* ****** ****** *)
local
//
#include "{$LIBATSHWXI}/teaching/mythread/DATS/mythread.dats"
//
in (* in of [local] *)
//
// HX: it is intentionally left to be empty
//
end // end of [local]
(* ****** ****** *)
local
//
#include "{$LIBATSHWXI}/teaching/mythread/DATS/mythread_posix.dats"
//
in (* in of [local] *)
//
// HX: it is intentionally left to be empty
//
end // end of [local]
(* ****** ****** *)
(* end of [DiningPhil2_thread.dats] *)
isbndb 1
year|publisher|title|authors|isbn13
2012||Ats (programming Language)|Niek Yoan|9786201963160
githubLanguage ATS
fileExtensions dats hats sats
trendingProjectsCount 0
type programming
aceMode ocaml
tmScope source.ats
aliases ats2
repos 217
semanticScholar 1
year|title|doi|citations|influentialCitations|authors|paperId
2019|ATS (AUTOMATIC TRANSFER SWITCH) BERBASIS PROGRAMMABLLE LOGIC CONTROLLER CPM1A AUTOMATIC TRANSFER SWITCH (ATS) BASED ON PROGRAMMABLLE LOGIC CONTROLLER CPM1A|10.31000/JT.V8I1.1579|3|0|Sumardi Sadi and S. Mulyati|63338d33f437a3e21ed477293e9dac064bceb9bf