タグ

qiitaとlanguageに関するmoritataのブックマーク (8)

  • 誤解の多い「NFD問題とUTF-8-MAC問題」を解説する - macOSの濁点を含むファイル名の扱い - Qiita

    はじめに macOS では濁点や半濁点が含まれるファイル名でたびたび問題が発生しています。この問題は NFD 問題と言われたり UTF-8-MAC 問題と言われることがありますが、必要な情報が正確に書かれているところは少なく、正しく解説してある所でも情報が古く(主に HFS+ 時代の話に)なっており、読むと逆に混乱してしまう場合があります。 macOS 標準アプリや誰かが作ったアプリであればバグが修正されるまで待つだけですが、自分が作ったアプリやシェルスクリプトなどではこれがどういう問題なのかを理解しなければバグが修正できません。この記事ではそれらを整理し直して、(可能な限り正確に)解説したいと思います。検証は macOS 15.3(補助的に 15.5)で行っています。 この問題は、Mac で作成した zip ファイルを Windows で展開したときに、濁点や半濁点を含むファイルに Wi

    誤解の多い「NFD問題とUTF-8-MAC問題」を解説する - macOSの濁点を含むファイル名の扱い - Qiita
  • 低レイヤー技術を教えるにあたって Part 1: 用語集 - Qiita

    はじめに こんにちは、Latte72 です。 慶應義塾大学公認サークル Computer Society で低レイヤーを扱うシステム班の班長を務めることになったので、後輩たちに低レイヤー技術(特に自作言語やコンパイラ・インタプリタの実装)について興味を持ってもらうにはどうしたらいいかと考えながらこの記事を書いています。 この記事は私のサークルに入会した新入生や、プログラミング言語がどのようにして動いているのかに興味がある人、低レイヤーにあまり詳しくないけど自作言語や自作コンパイラに興味がある人たちに向けたものです。 プログラミングに関する事前知識がなくても読めるように、多くの補足をつけています。 既にプログラミングに精通している方にとっては説明が不適切に感じる部分があるかもしれません。温かい目でご覧いただき、コメント欄にてご指摘いただければありがたいです。 当初は1つの記事として公開しよう

    低レイヤー技術を教えるにあたって Part 1: 用語集 - Qiita
  • こわくないHaskell入門(初級) - Qiita

    手続き型に慣れた人にもやさしい、こわくないHaskell入門記事です。 「なぜHaskellを学ぶと良いか」も参考にしていただければ幸いです。 まえがき Haskellと聞いて、何を思い浮かべますか? モナド 関数型 遅延評価 第4世代Intel Coreプロセッサ アライグマ いろいろ思い浮かべるかもしれませんが、Haskellがすばらしいのはモナドを利用しているからでも、遅延評価型の純粋関数型言語だからでもありません。 いろいろな「Haskellらしさ」が集まって、その結果Haskellにしかないすばらしい魅力を提供してくれます。 それは、決していままでのパラダイムと対立するものではなく、 手続き型 構造化プログラミング オブジェクト指向 のようなこれまでの便利な道具をうまく抽象化しながら統合して作り上げられたものです。 PHP javascript C++ Java などにあなたが費

    こわくないHaskell入門(初級) - Qiita
  • 500行以内で自作言語作ってみた - Qiita

    はじめに 昨今、Rustの登場によりプログラミング言語は複雑化しつつあります。(彼にRustを貶す意図はありません) この現状を打破するため、私は最高にシンプルで完璧な言語作りに取り組みました。(彼は冗談を言っています) 最終的に当初の目論見とはかけ離れた言語になりましたが、その過程で苦労したことなどを綴っていこうと思います。 完成品はこちらになります 一応GCCでコンパイルして実行すれば乱数生成器が動くようになっています。 https://github.com/sxclij/sxcscript 特徴 C言語かつ500行以内のソースコード。(C言語を触ったことのある人なら無茶振り度合いがわかってくれるはず...) 動的メモリ確保なし(多分)固定長配列最高! 3種類の記号で記述可能。(なんというシンプル! 使用ライブラリはfcntl.h,stdint.h,unistd.hのみ 500行で収め

    500行以内で自作言語作ってみた - Qiita
  • 美しすぎる。神の言語といわれるLISPは、数学のように純粋で美しいロジックが展開できる言語。オシャレな LISP インタプリタ。 - Qiita

    記事は、技術的な視点から情報を提供することを目的としております。内容については可能な限り正確性を期しておりますが、記事内の見解は執筆者の意見や理解に基づいており、すべての方にとって普遍的な結論を示すものではありません。技術の分野は常に進化し、新たな知見が追加されることもあります。ご意見がある場合には、建設的な対話を歓迎いたしますが、批判的な意見を展開する際も、お互いの尊重を大切にしたコミュニケーションを心がけていただけると幸いです。」 タイトル: 「東京プログラマー リスプを書かずにはいられない物語」 新宿の夜景を見下ろすカフェで、主人公の大輔は、ノートパソコンに向かって静かにキーボードを叩いていた。彼は東京で働くプログラマー。コードの世界に浸り、特に最近夢中になっているのが関数型言語LISPだった。 LISPは、数学のように純粋で美しいロジックが展開できる言語。大輔は「この関数型の世

    美しすぎる。神の言語といわれるLISPは、数学のように純粋で美しいロジックが展開できる言語。オシャレな LISP インタプリタ。 - Qiita
  • 【C言語】難解なポインタに挑む「忍法写し身の術!」その3 - Qiita

    ●はじめに こんにちは。 今回は、C言語で皆さんが最もつまずくとされているポインタで配列変数と組み合わせたプログラムの説明をしていきたいと思います。 私もポインタは概念が難しく理解するのに時間がかかりましたがわかりやすく解説していきます。 「え、そもそもC言語とか初めてなんだけど。。。」 「プログラミングの基礎がわからない。」 という方向けの記事ではないので以下のサイトの基編を学んでからこの記事を読んでください。 →一週間で身につくC言語の基 「C言語の関数くらいまでならできるよー」 って方でポインタにつまずいている方は是非、読んでください。 また、前回はポインタ変数と配列変数の関係性を説明したので読んでいない方はこちらをご覧ください。(今回も配列変数を扱いますが微妙にプログラムが異なり、前回が基礎です) →【C言語】難解なポインタに挑む「忍法写し身の術!」その2 ●ポインタ変数として

    【C言語】難解なポインタに挑む「忍法写し身の術!」その3 - Qiita
  • 【C言語】難解なポインタに挑む「忍法写し身の術!」その1 - Qiita

    ●はじめに こんにちは。 今回は、C言語で皆さんが最もつまずくとされているポインタについて説明していきたいと思います。 私もポインタは概念が難しく理解するのに時間がかかりましたがわかりやすく解説していきます。 「え、そもそもC言語とか初めてなんだけど。。。」 「プログラミングの基礎がわからない。」 という方向けの記事ではないので以下のサイトの基編を学んでからこの記事を読んでください。 →一週間で身につくC言語の基 「C言語の関数くらいまでならできるよー」 って方でポインタにつまずいている方は是非、読んでください。 ●アドレスとは ポインタを理解するためにアドレスから理解する必要があります。 「アドレスといえば住所でしょ」 そうです、その通りです。普段、変数には値を格納しますがコンピュータのメモリの中にあるため、その位置を表す数値であるアドレスが存在します。例えば、aという変数があるとき

    【C言語】難解なポインタに挑む「忍法写し身の術!」その1 - Qiita
  • なぜRustはメモリ安全なのかをC言語のコードと考える - Qiita

    追記: Twitterなどでご指摘等いただいているのをコメントしてますので、ぜひそちらもご覧ください! これはなに 絶賛Rust勉強中の僕が、「なんでRustはメモリ安全って言われているの?」と聞かれたので、実際にメモリ安全ではない(?)C言語のコードを並べてみて考える記事です。 C言語の場合 メモリリーク 以下のコードはメモリリークを起こす可能性があります。 #include <stdio.h> #include <stdlib.h> #define STR_BUF_SIZE 100000000 char *str_new() { return calloc(STR_BUF_SIZE, sizeof(char)); } int main() { for (int i = 0; i < 100000000; i++) { char *str = str_new(); snprintf(st

    なぜRustはメモリ安全なのかをC言語のコードと考える - Qiita
  • 1