From: | anton@mips.complang.tuwien.ac.at |
Newsgroups: | comp.compilers |
Date: | Thu, 15 May 2025 07:48:12 +0000 |
Organization: | Compilers Central |
References: | 25-05-004 25-05-005 25-05-006 25-05-007 |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="39138"; mail-complaints-to="abuse@iecc.com" |
Keywords: | Rust, optimize, comment |
Posted-Date: | 15 May 2025 10:48:09 EDT |
Kaz Kylheku <643-408-1753@kylheku.com> writes:
>On 2025-05-14, arnold@freefriends.org <arnold@freefriends.org> wrote:
>> [Rust] relies on compiler analysis instead.
>
>How would it be safe if you could write a Rust program that asks the
>user to input a random decimal number, and then uses it an index to
>access an array, without any check?
I don't know if Rust does it this way, but it could reject a program
that does a[i] if it cannot prove that i is an allowed index for a.
For your example, a program like this would be rejected:
input i
print a[i]
(using what little I remember from BASIC syntax because I don't know the Rust
syntax:-). If you want the compiler to accept it, you could write
input i
if i < length[a] then
print a[i]
else
print "index out of range"
endif
- anton
--
M. Anton Ertl
anton@mips.complang.tuwien.ac.at
http://www.complang.tuwien.ac.at/anton/
[I believe that Rust does runtime checks unless it can prove at compile time that they're not needed.
It has a fancy exception system to catch access violations. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.