Go言語コンパイラをスクラッチから書いてセルフホストを達成しました。 本家Goコンパイラの実装はほとんど見ずに、ほぼ 8cc というCコンパイラから学んだ知識のみで作りました。 特徴 コンパイルするとアセンブリを吐きます 字句解析・構文解析は手書きです。yacc/lex などのツールは使っていません 標準ライブラリも自作です コード行数はテストをのぞくと 9,152行でした。 セルフホストに必要な機能しかないので、Go言語の全機能は網羅していません。 例えば以下の機能は未実装です。 ガベージコレクション go routineとchannel 浮動小数点 設計 70%くらいは 8cc の設計をそのまま引き継いでいます。 残り25%(map,slice,interface,method,型推論等)が自分のオリジナル、残り5%が9cc、くらいな感じです。 かかった期間 2018/10/7に着手し
営業一課で使っている PHPアプリを保守してくれないかな? ○○さんが1人で作ってメンテしてたやつなんだけど 皆さんは上司からこんな仕事を振られたことはないでしょうか?私は過去に何度か経験した1のですが、こういった仕事はなぜか: 正確な仕様を知っている人はいない(知ってた人は辞めた) テスト計画書・デプロイ手順書・仕様書といったドキュメントは無い ソースコードはもちろんスパゲッティ でも、業務ではガッツリ使われているので廃止できない というレガシープロジェクトばかりでした。この記事では、レガシープロジェクトを引き継いでしまった時に、最初に何をするべきか書いていきたいと思います。 なお、ここで最悪なのは「とりあえず、緊急の不具合から直してしまおう」と、いきなりコードの修正にかかることです。 ※おことわり: この記事では「遵法的な職場の」「PHPやRailsで書かれた」「社員25人が使う」「業
#!usr/bin/python # -*- coding: UTF-8 -*- ##PyAutoGUIのモジュール #pip install pyautogui import pyautogui #クリップボードコピペ用 #pip install pyperclip import pyperclip import sys import time def GijiHenkan(kanji, roumaji, sleeptime): #roumaji文字列をタイプする(※全角モード前提) #pyautogui.typewrite(roumaji) #↑不自然に早いので不採用 #全部の文字を一文字ずつ打つ for char in roumaji: pyautogui.press(char, presses=1) time.sleep(sleeptime) #変換前にひとこきゅう time.sl
TL;DR 文科省によるプログラミングの教材はダメダメ。PEP8読め。 追記 もちろん、この指摘が普通のコードに対するものだとすれば 「重箱の隅をつつきすぎ」 だというのは全くその通りだと思います。こんな指摘をするつもりはさらさらありません。 しかし、これが文科省という権威ある機関が発表するものならば話は全く違います。 全ての日本の教育を一身に背負うくらいの気持ちと成果を伴わなければならないとも思います。 そういう理由での、厳しい(というか細かい)指摘です。 追記2 自分の説明が足りませんでした(すみません)。ちなみにこの教材は「教員研修用」です。 この教材で研修を受けた教師にプログラミングを教えられると思って考えてみてほしいと思います。 追記3 (2019/9/25 文科省の改訂を受けて) この度文科省がPythonに関する資料の改訂版を発表しました。 文科省に対して改善を求める当初を行
誰もが知る(?)プログラミングフォントこと Ricty にインスパイアされ、Ricty のように英文フォントと和文フォントを合成したプログラミングフォントを作りました。 その名も、プログラミングフォント「白源 (はくげん/HackGen)」です! 白源 (はくげん/HackGen) 通常版 生成元にはプログラミング向け英文フォント Hack と、Adobe 製作の源ノ角ゴシックに丸みを付けた派生フォント 源柔ゴシック を使用させていただきました。 白源の生成元である Hack、及び源柔ゴシックには、いずれも SIL Open Font License Version 1.1 という大らかなライセンスが適用されているため、改変及び配布が自由となっています。したがって、白源の生成済みフォントファイル (ttf ファイル) は GitHub からダウンロードして、すぐにご利用いただけます。 「白
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く