mieki256's diary



2017/09/19(火) [n年前の日記]

#1 [prog] Pascalについて少し調べてたり

KuinがPascalラブなあたりで、「Pascalってそんなにええもんなんやろうか」と気になり始めて、関連情報をググっていたり。自分、Pascalって触ったことないので分かんないのですよね。

_Pascal - Wikipedia

「var x : int」の記法は数学っぽい記法とか、コンパイル時に問題を見つけるために強く型付けとか、それなりに理由・メリットがあるのだなと。もっとも、最近 Python や Ruby を触ってばかりの自分には、変数宣言すら億劫に感じられて…。まあ、そのあたり、どこで苦労してどこで楽をするか、てな違いなのかなあ。

Turbo Pascal の原作者・Delphiの開発者、 _アンダース・ヘルスバーグ は、Microsoft に移って _C# を作ってる、てな話が興味深い。Pascal系を使うぐらいなら進化発展形とも言えるC#を使ったほうが、という話になるのか、それとも、いやーどっちも全然違うよー、という話になるのか。

_C#を病的に嫌う者が出現する理由を示す「Pascal踏み絵」仮説 【▲→川俣晶の縁側→ソフトウェア→技術雑記】
_Delphiをかじっている者ですがC#への移行を考えています - 趣味でDelp... - Yahoo!知恵袋
_Pascalは過小評価されている | スラド デベロッパー
_Java対Delphi - 宗教論争にならないように(宗教戦争になってる気もしますが)
_Turbo Pascal - Wikipedia

色々と興味深い。PC-9801のマルチペイントが Turbo Pascal で作られてたなんて知らなかった…。

Windows上で動かせるPascal系って何があるんだろ。 :

今現在、Windows上で動かせるPascal系の言語・環境って何があるんだろう。できれば無料で使えるとありがたいのだけど。

Free Pascal てのがあるみたいだな…。

_Free Pascal - Advanced open source Pascal compiler for Pascal and Object Pascal - Home Page
_Free Pascal - Wikipedia
_WindowsでPascalを走らせる | 葉巻のけむり 高田直樹ブログ

アレ? でもコレ、なんかDOS窓がどうとか書かれてる…。Windows登場以前、DOS時代のソレなのだろうか。

Lazarus なるものもあるらしい。

_Lazarus - Wikipedia
_Overview of Free Pascal and Lazarus/ja - Free Pascal wiki

Free Pascal を使ってGUIアプリを作れるようにしたのが Lazarus、という認識でいいのかな。

そういえば、Delphiの無償版が云々と言う話が以前あったような…。

_Delphi10の無料版が出たので使ってみた - Qiita
_入門者向け「Delphi」「C++Builder」の有償販売が終了、無期限の無償版として公開 - 窓の杜
_[ Delphi の無料ダウンロード版 ] - Mr.XRAY

昔は有償でしか使えなかったけど…。今は無償版が使えるのであれば、第一候補はDelphiってことになりそうな。

と思ったけど、第一候補と言ったら、Visual Studio + C# になるのだろうか。一応 Pascal の血を継いでいるらしいし…。今は、個人使用なら無料で使えるし…。そもそも、死にかけてないし。

_ダウンロード | IDE、Code、Team Foundation Server | Visual Studio

Webブラウザ上でPascalが動くらしい。 :

Webブラウザ上でPascalが動いたりせんのかな、と思ってググったら。

_懐かしの「Turbo Pascal」がブラウザで動く!!
_Turbo Pascal

マジか。試してみたらホントに動いた。スゲー。

そして、エディタの使い方が分からねえ。終了のさせ方すら分からんわ…。

#2 [prog][neta] 「:=」の謎

C言語系は、変数に値を代入する際に「a = 10;」みたいな書き方をするのだけど。どうして Pascal は「a := 10;」みたいな書き方をするのか気になったり。

ググってたら、なんとなく分かってきた。

_数学記号の表 - Wikipedia
「A := X」は、A という記号の意味するところを、X と定義することである。

数学記号の表 - Wikipedia より

数学の「定義」を示す記号から来ていたのか…。代入の意味じゃないのだな。

そもそも数学では、「a = 10」と書いたら「a と 10 は等しいんだよ」てな意味だと思うけど、プログラミング言語の場合、「=」は「a に 10 を格納するよ」という意味で使われる(ことが多いように見える)ので、おかしいと言えばおかしいのだよなあ…。一体どの言語から、「=」を「等しい」の意味ではなく、代入の意味として使い始めたんだろう。

Pascalは本当に「:=」にしたかったのだろうか。 :

歴史や思想を知らないので、頓珍漢なことを書いてるかもしれんけど。もしかして、Pascal も、「:=」ではなく「=」にしたかった可能性はないのかなと。コンパイル処理の高速化を検討した際に、「=」より「:=」のほうが速く処理できるので、泣く泣く、仕方なく、「:=」にした、みたいな。いや、泣く泣く、てのは違うか。おそらく「数学の『:=』と同じ意味になる。一石二鳥だ」と思った可能性のほうが高そうか。

当時の言語群は、このあたりどれが主流だったのかを調べてみないと、ちょっと分かんないな…。大多数が「=」だったのであれば、Pascalも「=」にすることを検討したのだろうし。どれもてんでバラバラだったなら、Pascalだって「=」のほうが望ましいなんて欠片も考えなかったのかも。

Pascalの作者は、 _ニクラウス・ヴィルト氏 だけど、どこかに記録が残ってたりせんのかな。何かの講演で語ってたり、著作でちょっと触れてたり、そういう記録があれば…。

全然関係ないけど。 _ヴィルトの法則 を目にして、なんだか色々と思い当たるというか…。

むしろ「:=」のほうがメジャーだったのかも。 :

む。 _ALGOL のソレを眺めていて気が付いた。そもそも、Pascalが参考にしていたALGOLからして「:=」だったのか。すると、Pascalを作る時に、そこで初めて勝手に「:=」にしたわけじゃなくて…。既存言語の真似をしただけ、ということか…。

ALGOLと同世代の言語らしい _FORTRAN は、「=」を使ってるな…。

C言語の前身のB言語は、ALGOLの影響を受けている、とされているけど。 _Thompson's B Manual を眺めると「=」になってる、ように見える。どうして「:=」が「=」になったんだろう…。

B言語が影響を受けたとされる _BCPL は…。この時点では「:=」を使ってるなあ。

つまり、プログラミング言語って元々は「:=」を使うのが主流で、「=」を使うのはマイナー派だった。ところが、C言語がドーンと普及したことで逆転したのです。ということになるのだろうか。

ホントかな? なんだか怪しい。自信無し。このあたり、歴史を知ってる詳しい人がどこかで解説してたりせんのかな…。

特殊記号と可読性。 :

ALGOLが、当時のコンピュータでは扱えなかったはずの特殊記号の数々を用いてソースを記述する案を出していた、てなエピソードがなんだか興味深かったり。

当たってるかどうかは分からんけど、そんなことを検討したのは、おそらく可読性を高めることを重要視していたから、だろうと想像したりもして。既存の記法が存在するなら、ソレをそのまま使ってソースを書けたほうが可読性は高まるだろう、てのは自然な発想だよなと。そして、その証拠の一つとして、「:=」が存在するのではあるまいか。

となると、Kuinの「::」が、Pascalを参考にしたと言いつつも、実は本質的なところでPascalどころかALGOLすら全く参考にしていないことも見えてくる。既存の記法からむしろ距離を置き、新規に異なる記法を学習することを利用者に強要する記法なわけで…。極端な評をすれば、人間にとって分かりやすい記法ではなく、コンピュータにとって分かりやすい記法を選択したとすら言える。コンパイル速度という、コンピュータにとって分かりやすい処理を追求したが故に「::」になったのだから…。人間がコンピュータを奴隷にするのではなく、人間がコンピュータの奴隷になるよう自ら歩を進めてみた言語仕様。それを端的に表すのが「::」…だったりするのかもしれない。まあ、あくまで、ひょっとすると、ぐらいの話だけど。

その方向性を更に発展させてみたらどうなるのだろう、てな興味も湧いてしまったり。あらゆる面で、人間様の都合など考えず、とにかく処理速度を追求したらどんな言語になるか、みたいな。例えば、「var」も「do」も「if」も、1文字の特殊記号で置き換えてみたらどうなるだろう。可読性は全く無くなる代わりに、コンパイル速度とソース入力速度だけは爆速に。それはそれで使い道が出てこないか。

それはおそらく、漫画やアニメに出てくる魔導書だの、SF作品でチラチラ出てくる「高速言語」なるものにどことなく近づきそうな気もするわけで。扱える者は圧倒的に少数だが、詠唱寺間が短く、効果も絶大、みたいな。さすがはお兄様です。的な。

アレ? ソレ、ひょっとして、LISP系じゃないのか…。コンピュータの仕組みに合わせた最適化を、わざわざ人間様がソースを書く時点で肩代わりしてやる、あのLISP系…。なるほど、LISP最強ってのは、そういうことでもあるのかな。LISP最強と言いつつ、実態はLISPが最強なのではない。LISPをスラスラと扱える俺様が最強なのだよ。みたいな。

コレ、たぶん、詳しい人が見たら怒り出しそうなことを書いてそうな、そんな不安が…。「いい加減なことを書くんじゃねえ!」と怒ってしまった方は、はてな匿名ダイアリーやQiitaあたりで正しい見方・捉え方・歴史を書いてくれると助かるッス。

#3 [prog] Visual Studio Community 2017 をインストール

Pascal について調べてたら、なんだか C# を触ってみたくなってきて、勢い余って Visual Studio Community 2017 をWindows10 x64上にインストール。

インストール時に必要な機能について選べるけれど、最低限の機能だけを選んだつもりでも6〜7GBぐらい使われるようで。コレ、32GBとか64GBのeMMC等の環境では使えないなあ。まあ、そのあたりのスペックのPCって、何かしらのデータの再生用であって、開発用ではないのだろうけど。

少し触ってみたけど、考えてみたら今のところコレで何かを作りたいわけでもないし…。HDDの空き容量が想像してた以上に減ってしまったのも痛いので、Visual Studio Installer を起動して、一旦アンインストール。必要になったらその時にまたインストールしよう…。そもそも 2015 が既に入っているし…。

#4 [pc][cg_tools] CELSYSフォルダをDドライブに移動してみたり

お絵かきソフトの CLIP STUDIO PAINT (Windows版)は、マイドキュメント\CELSYS\CLIPStudioCommon\ の中にDLした素材等を保存してくれるのだけど。マイドキュメントがCドライブにあると、Cドライブの空き容量が減ってしまうわけで…。

以前、CELSYSフォルダをDドライブに移動してシンボリックリンクを張ってみたのだけど、その時は動作が怪しくなって元に戻してしまった記憶が。でも、今時のバージョンはどうなってるのかなと、試しにDドライブに移動してシンボリックを張ってみたり。

む。ちゃんと素材が読み込めている…ような気がする。もしかして改良されたのかな? それともWindows10がそのあたりをイイ感じに処理してくれるようになったのだろうか。何にせよ、これでCドライブの空き容量が少し増やせそうな気配。助かった。ありがたや。

ちなみに、CLIP STUDIO PAINT 1.5.5 から、素材の保存先をユーザがカスタマイズできる機能が追加されていたようで。

_CLIP STUDIO PAINT Ver.1.5.5 / CLIP STUDIO ACTION Ver.1.5.5アップデータ公開のお知らせ | CLIP STUDIO
_素材のインストール先について | CLIP STUDIO PAINTの要望・不具合ボード | CLIP STUDIO

2012年頃から要望が出ていたけど、2016年にようやく実装、てな経緯があったのだな…。

これから使う人は、ちゃんと公式に機能がついてるから困らなくて済むのだな。

#5 [web] twitterアカウントのロックを解除してもらえた

携帯電話を持ってないからちょっと諦めてたところもあるのだけど、巷で紹介されてる、ヘルプ経由でロック解除の手続きを試してみたら、解除してもらえたようで。助かった。と言ってもアカウント削除をするために解除してもらったようなものだけど。

ログを一応バックアップ。 :

とりあえず、今までのつぶやきをまとめてダウンロードできる機能がtwitterにはあるらしいので、それを使ってローカルにログをダウンロード。

ログを眺めてみたら…自分、意外とそこそこ面白いことつぶやいていたんだなあ。
モフルンのライバルキャラとしてヌルヌルした感触のヌルルンとか出てこないかなって出してどうする…いや…もしかすると既に本編で登場した可能性があるのかな…ちゃんと見てないから分からない… #precure #nitiasa
確信した。この人、バカなんじゃないかな。

JavaScriptフル活用なのだな。 :

感心したのは、DLしたログの実体が全部 .js だったこと。JavaScript ってそんな使い方もできるのか…。いや、JavaScriptを使ってるプログラマーにとっては、こんな使い方は常識なのかもしれないけれど。

また、ローカルのログに対しても検索できてしまうようで。どうしてそんなことができるんだ…。全ログを、ブラウザにオンメモリで読み込んである、とか?

こういう使い方ができるなら、blog等の各記事にJavaScriptでコメント機能をつけるのも技術的には可能だったりするのかもしれない。と思ったけど、その場合Google検索で拾ってくれるんだろうか。

_GoogleはAjaxで読み込むコンテンツを解釈してくれるのか? | briccolog|渋谷区神宮前のウェブ制作会社ブリコルール

現時点では、JavaScriptで生成されたテキスト情報もクロールしてくれるのか。まあ、考えてみれば、そりゃそうか。Google自身がAjax活用のトップランナーだったもんな。そりゃ対応しないと…。何にせよ、昔と違って今ならそういう実装も状況的に可能ってことか…。

ちなみに、ログは .csv でも保存されてた。至れり尽くせりで感心。twitterって、こういうところは、ホント凄いなあ…。そりゃ代替サービスが見つからないわけだ…。でも理由不明でアカウントをロックされちゃうけど。ぎゃふん。

アカウント削除に成功。 :

とりあえず、アカウント削除もできた。今までありがとう…twitter…。

と言いつつ、結局代替が見つからなくて、またアカウントを取りそうな予感もあるのだけど。「バルス」に耐えるシステムは…魅力的だよなあ…。これで奇妙なアカウントロック等が無ければなあ…。

以上、1 日分です。

過去ログ表示

Prev - 2017/09 -
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project