ふるログ

ITなどのアウトプット

大抵のものは「補足」

英語には補足が多い

例えば、「I still love what I did.」という文書。「What I did」というフレーズはloveを修飾する補足です。

「I was spending all the money my parents had saved their entire life.」という文書。「my parents~」は、moneyにかかる補足です。

「 I would walk the 7 miles across town every Sunday night to get one good meal a week at the Hare Krishna temple. 」という文書。「accross town」からは全てwalkを補足しています。

英語って(日本語もそう)、補足が長いんですよね。

 

構造的に読む

英文を構造的に読もうってのはよく言われます(?)よね。

でも、いきなり構造的って言われても分からないと思うんです。副詞?形容詞?分詞構文?関係代名詞?みたいな。

でも、補足とそれ以外に分けるってなら簡単だと思いませんか?前置詞が来れば補足だし、関係代名詞が来ればそれは補足だし、分詞構文は補足だし、形容詞も副詞も補足…。

細かく分ける前に、大まかに分類して感覚を掴む。私はそうやって英語を勉強しています。

初学者なのでまだこのレベルですが、さんこうにしてください。

アセンブリについて箇条書きでメモする

プログラミングについて詳しく知ろうとすると、アセンブリの理解に行き当たりますよね。
ほとんどの言語は実行時アセンブリ言語になり実行されます。
理解していなくてもコードは書けます。
しかし、知っておくとコーディング中「こんな感じに変換されるのかな〜」と考えることができて面白いです。
今回も箇条書きでまとめている程度ですが、参考になればと思います。

アセンブリ言語について

  • アセンブラ言語はマシン語と1対1で結びつく
  • アセンブラ言語を利用することで、メモリの番地にデータを格納したり、CPUのレジスタにデータを入れたり、演算を実行させたりすることができる。
  • マシン語は0と1の数字で表される。
  • メモリの1つのアドレスに入るデータ量は決まっている。アセンブラからマシン語にされたものがそれを超える容量になると、2このアドレスを利用する。
  • CPUはプログラムカウンタを持っており、1つの命令を読み込むと、自動で次の命令があるメモリのアドレスを指し示す。
  • 分岐、ループは、プログラムカウンタを実行の最初に向けたり、飛ばして指定したりすることで実装される。
MAIN  START
      LD   GR0, A  ;メモリのA番地のデータをCPUのレジスタGR0に持ってくる
      ADDA GR0, B ;GR0にメモリのB番地の値を足す
      ST   GR0, ANS ;GR0の値をメモリのANS番地に格納する。
      RET
A     DC   1
B     DC   2
ANS   DS   1 ;ANSという領域を1つ空けておく。
      END      
  • ラベルは、変数名に当たる。 先頭のラベル(今回はMAIN)は、プログラム開始時のメモリの番地に置き換わる。

  • アセンブリアセンブルすると、コードがメモリに保管される。

  • アセンブリを1行ずつ上から実行する際、「次の命令の番地」をCPUのレジスタPRが保持する。 このPRレジスタの値は通常、1つ下の命令になるが、分岐やループの際は行を飛ばしたり戻ったりする。このレジスタを操作することで分岐やループが実現できる。

まだ学習中です。学んだことがあれば追記していき、その中で興味深いトピックが出てくれば記事にしたいと思います。

【プログラミング】プロセス、タスク、スレッドの違いを簡単にまとめる

エンジニアなので、ITのこともちょくちょく書いていきます。
以前簡単にメモにまとめていたものをそのまま貼り付けます。気が向いたら記事にします。

プロセス、タスク、スレッドの違い

プロセス

  • プログラムを実行している実体。
  • タスクとほぼ同義語。
  • 例えば、5個のアプリを開いた場合、基本的には5個のプロセスが動作する。
  • 各プロセスは独立している。そのため、他のプロセスに干渉できない。
  • 1つのプロセスがエラーで死んでも、他のプロセスは動作し続ける。

スレッド

  • プロセスの中にある実行単位。
  • スレッド同士は互いに干渉することができる。
  • 1つのスレッドが死ぬと、他のスレッドも死ぬ。

スレッド vs プロセス

  • Chromeのタブはそれぞれが1つのプロセスとなっている。
  • そのため、タスクマネージャーを開くと、何個もGoogle Chromeが起動しているようにみえる。(タスク = プロセス)
  • タブがプロセスとなっているため、1つのタブでエラーが起こっても他のタブは問題なく動作する。
  • また、プロセスはOSが管理してくれる。未使用のタブのメモリ解放などをOSが行なってくれるため、メモリ使用の無駄がない応答性が速いブラウザとなる。
  • スレッドは互いに干渉するため、未使用のタブのメモリ解放などの処理が難しくなる。

【英語】自動詞について

どうも。エンジニアをしている「ふる」と申します。
1発目の記事に英語の話題を選ばせていただきました。 よろしくお願いいたします。
自動詞について、私がポイントだと思ったことをアウトプットします。

自動詞

自動詞は、目的語Oが来ない動詞ですよね。そのため、普通は前置詞が後ろに来ることで動詞を補足します(副詞句)。
しかし、I go home.や、I run the store.などの紛らわしすぎる英文があったり、openなどのどっちでも使える動詞があるので難しいんです。

I go homehomeは、なんと副詞です。go thereも、go abroadも、後ろにつくのは副詞です。
特別な言い回しではなく、日本人からみて名詞だろ!と思う単語が実は副詞であるというだけなんですね。

I run the storeと、runの後に目的語らしきものが付く場合、runの意味は「走る」ではなく、「経営する」になります。
なので、I run the storeは、「店を経営する」です。「経営する」という意味でrunを使うときは、他動詞になっちゃうんですね。

openは、自動詞と他動詞どちらでも「開ける」という意味になります。
しかし、自動詞と他動詞で使われ方が違います。

まず、I open the door.という他動詞。「私はドアを開ける」というなんてことない文章です。
この主語+動詞+目的語は文型でいうと第三文型ですが、この第三文型は、「主語が目的語に動詞のような影響を与える」という意味があるらしいです。
今回だと、主語「私」が目的語「ドア」に動詞「開ける」という影響を与える、という感じです。

続いて、The door opened.という文章。 「ドアが開いた」という文章です。 openは自動詞ですね。 この時、間違ってもI openedという文章にはなりません。 まず、主語+動詞というのは第一文型ですが、これに影響を与えるというニュアンスはありません。
そして、重要なのですが、自動詞は「主語が動詞の動きを行う」という感覚になります。 そのため、I openedでは、「私が開く」という意味合いになってしまいます。あなたがドア役か何かをしているなら正解です。
The door openedは「ドアが開く」、主語「ドア」が動詞「開く」という動作を行う、という形になり、正しい英文になるんですね。

まとめ

  • 自動詞は後ろに目的語Oがこない
  • 動詞の後ろには基本副詞が来る。名詞っぽい副詞もあるので要注意
  • 自動詞、他動詞に両方意味がある動詞もある
  • ただし、自動詞と他動詞ではニュアンスが異なるため要注意

最後のopenに関するところは、実際に私が英作文中に悩んだところでした。
細かいこと部分ですが、分かってくると英文読解もスムーズになってくると思います。
頑張って英語を学習していきましょう!