タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

rustに関するzyxwvのブックマーク (7)

  • Rustは何が新しいのか(基本的な言語機能の紹介) - いもす研

    Rust は、Firefox を開発する Mozilla が開発し、次世代ブラウザの開発に使っているプログラミング言語です。借用検査という概念を導入することによりメモリ安全およびデータ競合安全をコンパイラが保証する言語であり、2015年中頃の安定版のリリースあたりから次第に注目を集めるようになりました。 メモリ安全とは、メモリの範囲外アクセスや二重解放、ヌル参照、未初期化領域へのアクセスがない状態を表します。ただし、Rust の言うメモリ安全とは、メモリリークをしないことを保証するものではありません。 データ競合安全とは、あるひとつのオブジェクトに対しての読み込みおよび書き込みのが同時に起き結果が不定になる状態にならないことを表します。競合状態とは異なります。 無名関数という概念を様々な言語が次々と導入したように、プログラミング言語は相互に影響を及ぼし徐々に変化しています。Rust は「寿

    zyxwv
    zyxwv 2018/08/31
  • GitHub - kogai/monkey: Writing An Interpreter In Go-> Rust

    zyxwv
    zyxwv 2018/06/09
  • Cannot borrow as mutable more than once at a time in one code - but can in another very similar

    zyxwv
    zyxwv 2018/06/08
    “You only need to remove unnecessary lifetime qualifiers in order for your code to compile: ”
  • リージョンについて | κeenのHappy Hacκing Blog

    このエントリは言語実装Advent Calendar 2015 10日目の記事です κeenです。今日はある程度gcに頼らずメモリを管理する手法、リージョンについて話そうと思います。 リージョン推論とそのアルゴリズムまで話せればよかったのですがサーベイが間に合わず… スタックベースのメモリ管理 gcのない言語、例えばcでも自動で解放される類のメモリがあります。ローカル変数です。 ローカル変数のメモリ確保/解放戦略は単純です。ブロックの開始に確保され、ブロックの終わりに解放されます。 { int x; // <- xが確保される { int y = 2; // <- yが確保される { int z = 3; // <- zが確保される x = y + z; } // <- zが解放される } // <- yが解放される } // <- xが解放される ブロックはネスト構造をとるのでメモリ管理

    リージョンについて | κeenのHappy Hacκing Blog
    zyxwv
    zyxwv 2018/05/24
  • Rust: Vec にトレイトを実装したオブジェクトを格納したい

    よくある問題ですね。これには2つ解決策があります。ジェネリクスとトレイトオブジェクトです。 ジェネリクス Structに型引数を追加して、実装している型も受け取るスタイルです。今回ちょっと難しいのはTrait自身が引数を取る(のとRustが高階多相をサポートしていない)のでPhantomDataというダミー用のフィールドを足してunused type parameterエラーを防ぐ必要があります。 use std::marker::PhantomData; trait Trait<T> {} struct Struct<Impl, T> where Impl: Trait<T> { a: Vec<Impl>, phantom: PhantomData<T>, } fn main() {} トレイトオブジェクト もう1つはトレイトオブジェクトで、雑に言うとBoxで包んであげれば解決できます。

    Rust: Vec にトレイトを実装したオブジェクトを格納したい
    zyxwv
    zyxwv 2018/05/20
  • rust初心者へのガイド | κeenのHappy Hacκing Blog

    シルバーウィークの進捗が芳しくなかったので雑な記事書いてお茶を濁しとく。rustをそれなりに(といっても1000行くらい)書いて溜まった知見をとりあえず出す。rust1.3時点。 最初の方で熱く語ってるが多くの人にとって欲しい情報は下の方にあると思う。 どんな言語 公式から持ってくるとこんな感じ。 zero-cost abstractions C++くらいの性能と思えばいい。 move semantics 他にはない難しい概念。しかしこれのおかげで様々な機能を教授出来る。 guaranteed memory safety move semanticsにより安全でない操作はコンパイル時に弾ける。 threads without data races move semanticsその他により安全でない操作は(ry trait-based generics 継承ベースとは違って開いている。型を定

    rust初心者へのガイド | κeenのHappy Hacκing Blog
    zyxwv
    zyxwv 2015/09/24
  • [翻訳] Python プログラマーのための Rust 入門 - Qiita

    稿は 2015年5月27日 (水) に Armin Ronacher (@mitsuhiko) 氏によって書かれた記事の翻訳です。 Rust for Python Programmers 訳者は Rust を全く知らないため、勘違いや誤訳もあると思います (特に用語) 。そういった誤りを見つけたら編集リクエストを送ってもらえると助かります。 Python プログラマーのための Rust 入門 いま Rust 1.0 が登場して非常に安定しているので、Python プログラマー向けに Rust の入門記事を書くとおもしろいのではないかと私は思いました。この手引きでは、Rust 言語の基礎を調べながら異なる構成概念とそれらがどう振る舞うのかを比較します。 Rust という言語は Python と比べると全く異なる獣です。単に一方がコンパイル型言語でもう一方がインタープリター型言語であるという

    [翻訳] Python プログラマーのための Rust 入門 - Qiita
    zyxwv
    zyxwv 2015/06/29
  • 1