Data update
This commit is contained in:
parent
4d5544505c
commit
4924dd0264
|
|
@ -1,3 +1,8 @@
|
|||
/Cache/
|
||||
/Meta/
|
||||
/rosettacode.log
|
||||
/entry
|
||||
/pick
|
||||
/random-clojure-task
|
||||
/.clj-kondo/
|
||||
/.lsp/
|
||||
|
|
|
|||
|
|
@ -24,10 +24,12 @@ Action!: .action
|
|||
ActionScript: .as
|
||||
Acurity Architect: .acurity
|
||||
Ada: .ada
|
||||
Adina: .adina
|
||||
Agda: .agda
|
||||
Agda2: .agda2
|
||||
Agena: .agena
|
||||
AHDL: .ahdl
|
||||
AIDED NATURAL LANGUAGE: .aided
|
||||
Aikido: .aikido
|
||||
Aime: .aime
|
||||
Algae: .algae
|
||||
|
|
@ -51,6 +53,7 @@ Anyways: .anyways
|
|||
Apex: .apex
|
||||
APL: .apl
|
||||
App Inventor: .app
|
||||
Apple: .apple
|
||||
AppleScript: .applescript
|
||||
Applesoft BASIC: .basic
|
||||
Application Master: .app
|
||||
|
|
@ -60,6 +63,8 @@ Arbre: .arbre
|
|||
Arc: .arc
|
||||
Arendelle: .arendelle
|
||||
Argile: .argile
|
||||
Aria: .aria
|
||||
ArkScript: .ark
|
||||
ARM Assembly: .arm
|
||||
ArnoldC: .arnoldc
|
||||
Arturo: .arturo
|
||||
|
|
@ -138,6 +143,7 @@ C1R: .c1r
|
|||
C2: .c2
|
||||
C3: .c3
|
||||
CafeOBJ: .cafeobj
|
||||
Calcscript: .calc
|
||||
Caml: .caml
|
||||
Casio BASIC: .basic
|
||||
Cat: .cat
|
||||
|
|
@ -157,6 +163,7 @@ ChucK: .chuck
|
|||
Cilk++: .cilk++
|
||||
Cilk: .cilk
|
||||
Cind: .cind
|
||||
CJam: .cjam
|
||||
Clarion: .clarion
|
||||
Clay: .clay
|
||||
Clean: .clean
|
||||
|
|
@ -180,6 +187,7 @@ Common Lisp: .lisp
|
|||
Component Pascal: .pas
|
||||
Computer/zero Assembly: .0asm
|
||||
ContextFree: .cf
|
||||
Convex: .convex
|
||||
Coq: .coq
|
||||
Corescript: .core
|
||||
Cowgol: .cowgol
|
||||
|
|
@ -216,6 +224,7 @@ Draco: .draco
|
|||
Dragon: .dragon
|
||||
DreamBerd: .dreamberd
|
||||
Dt: .dt
|
||||
DuckDB: .duckdb
|
||||
DUP: .dup
|
||||
DWScript: .dw
|
||||
Dyalect: .dyalect
|
||||
|
|
@ -260,6 +269,7 @@ Evaldraw: .evaldraw
|
|||
Excel: .excel
|
||||
Explore: .explore
|
||||
Extended BrainF***: .ebf
|
||||
Extended Color BASIC: .basic
|
||||
Ezhil: .ezhil
|
||||
F: .f
|
||||
Factor: .factor
|
||||
|
|
@ -297,6 +307,7 @@ Frink: .frink
|
|||
FRISC Assembly: .frisc
|
||||
F Sharp: .fs
|
||||
FTCBASIC: .basic
|
||||
FuncSug: .funcsug
|
||||
FunL: .funl
|
||||
Furor: .furor
|
||||
FurryScript: .furryscript
|
||||
|
|
@ -329,6 +340,7 @@ Gnuplot: .gnuplot
|
|||
Go!: .go
|
||||
Go: .go
|
||||
Goaldi: .goaldi
|
||||
Goboscript: .gobo
|
||||
Golfscript: .golf
|
||||
Golo: .golo
|
||||
Goo: .goo
|
||||
|
|
@ -402,6 +414,7 @@ Julia: .jl
|
|||
K: .k
|
||||
Kabap: .kabap
|
||||
Kamailio Script: .kamailio
|
||||
Kantalo: .kantalo
|
||||
KAP: .kap
|
||||
Kaya: .kaya
|
||||
Keg: .keg
|
||||
|
|
@ -419,6 +432,7 @@ KQL: .kql
|
|||
Ksh: .ksh
|
||||
L++: .l++
|
||||
LabVIEW: .labview
|
||||
Labyrinth: .labyrinth
|
||||
Lambda Prolog: .pro
|
||||
Lambdatalk: .lambdatalk
|
||||
Lang: .lang
|
||||
|
|
@ -518,6 +532,7 @@ ML: .ml
|
|||
ML/I: .mli
|
||||
MLite: .mlite
|
||||
MMIX: .mmix
|
||||
Mn: .mn
|
||||
Modula-2: .mod2
|
||||
Modula-3: .mod3
|
||||
Mojo: .mojo
|
||||
|
|
@ -565,6 +580,7 @@ Nit: .nit
|
|||
Niue: .niue
|
||||
Nix: .nix
|
||||
NLP++: .nlp++
|
||||
Nom: .num
|
||||
NOWUT: .nowut
|
||||
NQP: .nqp
|
||||
NS-HUBASIC: .basic
|
||||
|
|
@ -581,6 +597,7 @@ Objeck: .objeck
|
|||
ObjectIcon: .oi
|
||||
Objective-C: .m
|
||||
Object Pascal: .pas
|
||||
Object Pascal Implementations: .pas
|
||||
OCaml: .ml
|
||||
Occam: .occam
|
||||
Octave: .octave
|
||||
|
|
@ -613,6 +630,7 @@ Pare: .pare
|
|||
PARI/GP: .parigp
|
||||
Pascal: .pas
|
||||
PascalABC.NET: .pas
|
||||
Pascal-P: .pas
|
||||
PASM: .pasm
|
||||
PDP-11 Assembly: .pdp11
|
||||
Pebble: .pebble
|
||||
|
|
@ -630,6 +648,7 @@ Phixmonti: .phixmonti
|
|||
PHL: .phl
|
||||
PHP: .php
|
||||
Picat: .picat
|
||||
Pico-8: .pico8
|
||||
PicoLisp: .l
|
||||
Pict: .pict
|
||||
Piet: .piet
|
||||
|
|
@ -648,6 +667,7 @@ PL/M: .plm
|
|||
PL/pgSQL: .sql
|
||||
PL/SQL: .sql
|
||||
PLUS: .plus
|
||||
Pluto: .pluto
|
||||
PLZ/SYS: .plz
|
||||
Pointless: .pointless
|
||||
Polyglot: .polyglot
|
||||
|
|
@ -711,6 +731,7 @@ ReScript: .re
|
|||
Retro: .retro
|
||||
Revolution: .rev
|
||||
REXX: .rexx
|
||||
Rhombus: .rhombus
|
||||
Rhope: .rhope
|
||||
Rhovas: .rhovas
|
||||
Ring: .ring
|
||||
|
|
@ -812,6 +833,7 @@ SystemVerilog: .v
|
|||
TailDot: .taildot
|
||||
Tailspin: .tailspin
|
||||
TAL: .tal
|
||||
TAV: .tav
|
||||
Tbas: .tbas
|
||||
Tcl: .tcl
|
||||
TechBASIC: .basic
|
||||
|
|
@ -872,6 +894,7 @@ UserRPL: .rpl
|
|||
UTFool: .utfool
|
||||
Uxntal: .uxnatl
|
||||
V: .v
|
||||
V (Vlang): .v
|
||||
Vala: .vala
|
||||
Vale: .vale
|
||||
VAX Assembly: .vax
|
||||
|
|
@ -893,7 +916,7 @@ Vorpal: .vorpal
|
|||
Vox: .vox
|
||||
VRML: .vrml
|
||||
VTL-2: .vtl-2
|
||||
V (Vlang): .v
|
||||
Vyxal: .vyxal
|
||||
Waduzitdo: .waduzitdo
|
||||
Wart: .wart
|
||||
WDTE: .wdte
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
{{stub}}{{language|Ayrch}}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
from: http://rosettacode.org/wiki/Category:AIDED_NATURAL_LANGUAGE
|
||||
|
|
@ -1 +0,0 @@
|
|||
../../Task/Factorial/ALGOL-60
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Date-manipulation/ALGOL-68
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Distribution-of-0-digits-in-factorial-series/ALGOL-68
|
||||
|
|
@ -1 +0,0 @@
|
|||
../../Task/Factorial/ALGOL-68
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Knapsack-problem-Continuous/ALGOL-68
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Word-wheel/ALGOL-68
|
||||
|
|
@ -1 +0,0 @@
|
|||
../../Task/Factorial/ALGOL-W
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Knapsack-problem-Continuous/ALGOL-W
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/AKS-test-for-primes/ANSI-BASIC
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Old-Russian-measure-of-length/ANSI-BASIC
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Monte-Carlo-methods/APL
|
||||
|
|
@ -4,9 +4,9 @@ The ARM architecture is widely used on mobile phones and tablets. It falls under
|
|||
===Instruction Size===
|
||||
Every instruction that the ARM can execute is 32 bits. While other processors can have variable length instructions, the ARM does not. This means that the ARM doesn't need to parse where an instruction begins and ends, which makes it run very fast. What you might not expect is that this 32-bit instruction size includes both the actual instruction and the operands! Let's take a look at a [[Z80 Assembly]] instruction and compare it to an ARM instruction.
|
||||
|
||||
<lang z80>LD HL,&8040 ;bytecode is 0x21 0x40 0x80</lang>
|
||||
<syntaxhighlight lang="z80">LD HL,&8040 ;bytecode is 0x21 0x40 0x80</syntaxhighlight>
|
||||
|
||||
<lang ARM Assembly>mov r4,#0x04000000 ;bytecode is 0xE3A04301</lang>
|
||||
<syntaxhighlight lang="arm">mov r4,#0x04000000 ;bytecode is 0xE3A04301</syntaxhighlight>
|
||||
|
||||
So where did the <code>0x04000000</code> go? It's actually been compressed and fit within those 4 bytes you saw earlier. The ARM is very good at decompressing it, since it's been shrunk to an 8-bit number that can be rotated by an even number of bits. Unfortunately, this compression method is a double-edged sword - some 32-bit numbers can't be compressed this way, and thus many instructions can't work with them!
|
||||
|
||||
|
|
@ -18,72 +18,73 @@ Registers are much more flexible than immediate operands. Unlike immediate opera
|
|||
Getting an address in a register can be achieved with the <code>MOV</code> command, but there are limitations to that which will be explained in detail later. It's more reliable to use <code>ADR</code> which loads a nearby address into a register. This address has to be within a certain distance from the current program counter or it can't be loaded, so it's not a reliable way to load from the heap on many machines. It's mostly intended for loading from nearby read-only data, such as text strings or stored immediates (more on that later). When you type <code>ADR R0,LABEL</code>, the assembler will convert this to <code>MOV R0,PC,#N</code>, where N is the difference between the current program counter value and the label you specified.
|
||||
|
||||
<code>LDR</code> can be used in a similar fashion to <code>ADR</code> but there is a subtle distinction between the two. Assume that the section below is assembled starting at memory address <code>0x04000000</code>:
|
||||
<lang ARM Assembly>DataBlock:
|
||||
<syntaxhighlight lang="arm">DataBlock:
|
||||
.long 0xDEADBEEF ;VASM uses .long for 32-bit data and .word for 16-bit data. Your assembler will probably use .word for 32 bit and
|
||||
.long 0xFFFFFFFF ; .hword for 16-bit.
|
||||
|
||||
MyCode:
|
||||
adr r0, DataBlock ;loads the value 0x04000000 into R0
|
||||
|
||||
ldr r1, DataBlock ;loads the value 0xDEADBEEF into R1
|
||||
|
||||
adr r2, DataBlock+4 ;loads the value 0x04000004 into R2
|
||||
|
||||
ldr r3, DataBlock+4 ;loads the value 0xFFFFFFFF into R3</lang>
|
||||
ldr r3, DataBlock+4 ;loads the value 0xFFFFFFFF into R3
|
||||
</syntaxhighlight>
|
||||
|
||||
As you can see, <code>ADR</code> only gives you the memory location of a value in memory, where <code>LDR</code> loads ''from'' that memory location.
|
||||
|
||||
|
||||
===Data Addressing using LDR and STR===
|
||||
Unlike its "cousin," the Motorola 68000 (which isn't really related but has a somewhat similar design), the ARM cannot directly write immediate values to memory. Those values must be contained in registers first. Unlike the 68000, the ARM has no "address registers." Rather, enclosing a register name in square brackets turns its value into a reference to a memory location. You'll need to load that memory location's numeric "value" as a constant first. Then you can read from it with <code>LDR</code> and write to it with <code>STR</code>. Not only can you read from a given address, you can also adjust how you read from it, and what you do before or after the read.
|
||||
|
||||
<lang ARM Assembly>RAM_ADDRESS:
|
||||
<syntaxhighlight lang="arm">RAM_ADDRESS:
|
||||
.long 0 ;for simplicity we'll assume that this can actually be written to. Represents a placeholder for 32-bit data.
|
||||
;Your assembler's syntax may be different.
|
||||
|
||||
.long 0 ;another placeholder for 32-bit data
|
||||
|
||||
MyCode:
|
||||
adr R2,RAM_Address ;get the address of a nearby place to store values.
|
||||
MOV R0,#0x12345678 ;the value to store.
|
||||
STR R0,[R2] ;store 0x12345678 into the first 32-bit slot.</lang>
|
||||
STR R0,[R2] ;store 0x12345678 into the first 32-bit slot.
|
||||
</syntaxhighlight>
|
||||
|
||||
This is the basic way to store into memory, but there are other options, such as offsetting and post-increment.
|
||||
<lang ARM Assembly>RAM_ADDRESS:
|
||||
<syntaxhighlight lang="arm">RAM_ADDRESS:
|
||||
.long 0
|
||||
.long 0 ;we'll store here this time.
|
||||
|
||||
MyCode:
|
||||
adr R2,RAM_Address ;point R2 to the first storage slot
|
||||
MOV R0,#0x12345678
|
||||
STR R0,[R2,#4] ;store into the SECOND slot. R2 still points to the first slot - the #4 is added to R2 only temporarily.</lang>
|
||||
STR R0,[R2,#4] ;store into the SECOND slot. R2 still points to the first slot - the #4 is added to R2 only temporarily.
|
||||
</syntaxhighlight>
|
||||
|
||||
There's a limit on the size of an immediate value used to offset when loading/storing. You can also use a register as an offset, whose value will be added to the address.
|
||||
|
||||
<lang ARM Assembly>RAM_AREA:
|
||||
<syntaxhighlight lang="arm">RAM_AREA:
|
||||
.space 64,0 ;64 bytes of ram
|
||||
|
||||
;assume that R2 contains the address of "RAM_AREA"
|
||||
MyCode:
|
||||
MOV R0,#0x12345678
|
||||
MOV R1,#20
|
||||
STR R0,[R2,R1] ;equivalent of "STR R0,[R2,#20]"</lang>
|
||||
STR R0,[R2,R1] ;equivalent of "STR R0,[R2,#20]"
|
||||
</syntaxhighlight>
|
||||
|
||||
Now let's say you wanted to actually alter the pointer to R2, so that it remains pointing to where you offset it to after the store or load. That's an option you have - all you have to do is type "!" after the brackets. This is called "pre-increment" or "pre-indexing."
|
||||
|
||||
<lang ARM Assembly>RAM_ADDRESS:
|
||||
<syntaxhighlight lang="arm">RAM_ADDRESS:
|
||||
.long 0
|
||||
.long 0 ;we'll store here this time, and we want R2 to still be pointing here after we write to it.
|
||||
|
||||
MyCode:
|
||||
adr R2,RAM_Address ;point R2 to the first storage slot
|
||||
MOV R0,#0x12345678
|
||||
STR R0,[R2,#4]! ;store into the SECOND slot. R2 also points to the second slot now, even after this instruction has concluded.</lang>
|
||||
STR R0,[R2,#4]! ;store into the SECOND slot. R2 also points to the second slot now, even after this instruction has concluded.
|
||||
</syntaxhighlight>
|
||||
|
||||
Here, the offset is performed ''before'' the storage operation. What if you want to offset afterwards? That would be useful for reading in a data stream. Good news - you can do that simply by having the offset value or register '''outside''' the brackets. This is called "post-increment" or "post-indexing." Unlike pre-indexing, these changes to the pointer are not temporary.
|
||||
|
||||
<lang ARM Assembly>LDR R0,[R1],#4 ;load the 32-bit value stored at memory location R1 into R0, THEN add 4 to R1. This offset remains even after this
|
||||
; instruction is finished.</lang>
|
||||
<syntaxhighlight lang="arm">LDR R0,[R1],#4 ;load the 32-bit value stored at memory location R1 into R0, THEN add 4 to R1. This offset remains even after this
|
||||
; instruction is finished.
|
||||
</syntaxhighlight>
|
||||
|
||||
===Barrel Shifter===
|
||||
The ARM can add a bit shift or rotate to one of its operands at no additional cost to execution time or bytecode. If the operand being shifted is a register, the value of that register is not actually changed. The shift or rotate only applies during that instruction.
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Old-Russian-measure-of-length/ASIC
|
||||
|
|
@ -1 +0,0 @@
|
|||
../../Task/100-doors/AWK
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Factorial-primes/AWK
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Soloways-recurring-rainfall/AWK
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Almkvist-Giullera-formula-for-pi/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Biorhythms/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Boyer-Moore-string-search/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Calkin-Wilf-sequence/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Camel-case-and-snake-case/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Canonicalize-CIDR/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Deepcopy/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Factorions/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Find-duplicate-files/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Harmonic-series/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Knapsack-problem-Bounded/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Levenshtein-distance-Alignment/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Long-literals-with-continuations/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Longest-increasing-subsequence/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Machine-code/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Minimal-steps-down-to-1/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Naming-conventions/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Read-a-file-character-by-character-UTF8/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Test-integerness/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Total-circles-area/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Twos-complement/Ada
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Vector/Ada
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{{language|Adina}}
|
||||
Adina is a programming language, based on Racket and russian language. Unlike Racket it uses indent and operators precedence to describe program syntax. It may be used in english, because all Racket libraries are accessible. One should add "english()" in first string to use standard racket libraries.
|
||||
|
||||
Адина, это язык программирования, основанный на Racket и русском языке. В отличие от Racket вместо скобок для синтаксической
|
||||
структуры используются отступы и бинарные операторы. Также сделан доступ через квадратные скобки к элементам коллекции и через фигурные к методам объектов.
|
||||
|
||||
Документация по адресу: https://docs.racket-lang.org/russian-lang/
|
||||
|
||||
==See Also==
|
||||
* [[Racket]]
|
||||
|
||||
==TODO==
|
||||
[[Tasks not implemented in Adina]]
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
from: http://rosettacode.org/wiki/Category:Adina
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/100-doors/Adina
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Even-or-odd/Adina
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Hello-world-Text/Adina
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Loops-For/Adina
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Tree-traversal/Adina
|
||||
|
|
@ -21,4 +21,6 @@ The syntax looks like very simplified [[ALGOL 68]] with elements taken from [[Lu
|
|||
Agena is based on the [[ANSI]] [[C]] source code of [[Lua]], a popular and widely used Open Source programming language.
|
||||
|
||||
== See Also ==
|
||||
[[ALGOL 68]]
|
||||
[[ALGOL 68]]<br/>
|
||||
[[Lua]]<br/>
|
||||
[[SQL]]
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/AKS-test-for-primes/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Abundant-deficient-and-perfect-number-classifications/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Abundant-odd-numbers/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Arbitrary-precision-integers-included-/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Attractive-numbers/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Disarium-numbers/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Factorial/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Factorial-primes/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Giuga-numbers/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Goldbachs-comet/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Horners-rule-for-polynomial-evaluation/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Humble-numbers/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/JSON/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Jacobsthal-numbers/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Jewels-and-stones/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Kaprekar-numbers/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Mian-Chowla-sequence/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Pernicious-numbers/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Pisano-period/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Primality-by-trial-division/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Sequence-of-primes-by-trial-division/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Smarandache-prime-digital-sequence/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Soloways-recurring-rainfall/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Sum-of-elements-below-main-diagonal-of-matrix/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Time-a-function/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Totient-function/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Unprimeable-numbers/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Van-Eck-sequence/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Van-der-Corput-sequence/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Wagstaff-primes/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Wieferich-primes/Agena
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Yellowstone-sequence/Agena
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
{{language|Apple
|
||||
|exec=Compiled
|
||||
|safety=safe
|
||||
|checking=static
|
||||
|strength=strong
|
||||
|site=https://github.com/vmchale/apple}}
|
||||
|
||||
{{language programming paradigm|functional}}
|
||||
|
||||
The Apple Array System is a JIT-compiler for a statically typed functional language specialized on arrays.
|
||||
|
||||
It is expression-oriented (it has no imports); it is meant to be called from other languages.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
from: http://rosettacode.org/wiki/Category:Apple
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Averages-Arithmetic-mean/Apple
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Averages-Pythagorean-means/Apple
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Catamorphism/Apple
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Dot-product/Apple
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Factorial/Apple
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Factors-of-an-integer/Apple
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Filter/Apple
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/ISBN13-check-digit/Apple
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
{{language
|
||||
|exec=interpreted
|
||||
|site=https://egranata.github.io/aria/
|
||||
}}
|
||||
|
||||
Aria is a modern, dynamic scripting language. It is meant to be a “sweet spot” language, easy to pick-up and enjoyable to use.
|
||||
|
||||
It provides a familiar C-style syntax, with a feature set inspired by well-beloved languages such as Python and Rust. It comes with little ceremony and a focus on getting stuff done.
|
||||
|
||||
Aria programs are written as .aria files and passed to the Aria virtual machine, which compiles them down to bytecode and executes them.
|
||||
|
||||
The Aria interpreter is written in Rust, 2024 edition.
|
||||
|
||||
==Todo==
|
||||
[[Tasks_not_implemented_in_Aria]]
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
from: http://rosettacode.org/wiki/Category:Aria
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/99-bottles-of-beer/Aria
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/Hello-world-Text/Aria
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
{{language|ArkScript
|
||||
|exec=bytecode
|
||||
|site=https://arkscript-lang.dev
|
||||
|gc=no
|
||||
|parampass=value
|
||||
|strength=strong
|
||||
|checking=dynamic
|
||||
|tags=arkscript}}
|
||||
ArkScript is a small, fast, functional and scripting language for C++ projects, inspired by [[Lua]], [[Lisp]], and [[Python]].
|
||||
|
||||
The language has been designed to be concise, with only 9 keywords, and two rules to parse it:
|
||||
# the first node after an opening paren <tt>(</tt> is a "function", the following nodes are arguments
|
||||
# the only exception to the previous rule is when defining the argument list of a function
|
||||
|
||||
<syntaxhighlight lang="arkscript">
|
||||
(let foo 5)
|
||||
(let bar "hello world!")
|
||||
|
||||
(let egg (fun (a b c)
|
||||
(+ a (* b c))))
|
||||
|
||||
(print (egg 1 foo bar))
|
||||
</syntaxhighlight>
|
||||
|
||||
The language is also
|
||||
* small: the core fit under 8000 lines of code ; also small in terms of keywords (only 9)
|
||||
* a scripting language: very easy to embed it in your projects. Registering your own functions in the language is made easy
|
||||
* portable: a unique bytecode which can be run everywhere the virtual machine is
|
||||
* a functional language: every parameter is passed by value, everything is immutable unless specified
|
||||
* powerful: provides closures and explicit capture
|
||||
* promoting functionalities before performances: expressiveness often brings more productivity, though performances aren't left behind
|
||||
* a Lisp inspired language, with fewer parentheses: [...] is expanded to (list ...) and {} to (begin ...)
|
||||
* extensible: supports C++ module to use it in the language, adding functionalities
|
||||
|
||||
|
||||
===Implementation===
|
||||
The compiler and VM are implemented in [[C++]] 20. For more details, see [https://github.com/ArkScript-lang/Ark ArkScript GitHub].
|
||||
|
||||
===License===
|
||||
ArkScript is released under the Mozilla Public License 2.0.
|
||||
|
||||
===Todo===
|
||||
[[Tasks not implemented in ArkScript]]
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
from: http://rosettacode.org/wiki/Category:ArkScript
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/100-doors/ArkScript
|
||||
|
|
@ -0,0 +1 @@
|
|||
../../Task/99-bottles-of-beer/ArkScript
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue