Discuss Scratch

akinarin
Scratcher
500+ posts

Scratch以外のプログラミング言語やってる人交流場

初めてではないですが、自己紹介。

使い慣れた言語: C#

何度も書いたことのある言語: Python

仕様だけ読んで解った気になっている言語:
Ruby, Rust, Haskell, PureScript, Java, JavaScript,
TypeScript, Swift, Go, Scala, Kotlin, F#, なでしこ, Visual Basic,
C, C++, Brainf**k, HTML, CSS
(順番に意味はありません)

仕様を少しだけ読んだことがある言語:
Nim, PHP, Perl, Koka, Elm, Elixir, Crystal, Lua,
R, Nemerle, Fortran, Pascal, Ocaml, Prolog, Objective-c

個人的に仕様が好きな言語(関数型言語多め):
Ruby, Rust, Scala, Haskell, Swift, F#, PureScript, Nim

好きなプログラミングの概念(的なもの):
オブジェクト指向, 関数指向, 純粋な関数, モナド, 値型, イミュータブル, コピーオンライト
オーナーシップ, ライフタイム, プロパティ, プライマリコンストラクタ
代数的データ型, 特異型, トップ型, ボトム型, 共変性, 反変性, 多態性, ジェネリクス, ユニオン型, ユニット型,
世代別GC, スマートポインタ, 参照カウント, コピーGC, マークスイープGC,
継続渡し, 再帰関数, ラムダ計算, メモ化, 並列処理, 並行処理, メッセージ
例外, 例外安全性, リフレクション, メタプログラミング, マクロ
(但しどれもそんなに詳しくない)

はまっていること:
ラムダ計算, プログラミング言語制作, モナド

「プログラミングでできること」よりも「プログラミングそのもの」に興味があり、
日々使いもしない知識を詰め込んで生きています

Last edited by akinarin (Dec. 26, 2022 07:53:50)


最近、物理と世界史、数学、ボカロにはまっています。
プログラミング言語制作の方は案を作るのに夢中になり過ぎて捗っていません。
あと、使い始めたのにRustに慣れていない…
Doctor_Fe
Scratcher
100+ posts

Scratch以外のプログラミング言語やってる人交流場

改めてプログラミングに関する自己紹介をしたことはないなと思って。

よく使う言語
・Rust (AtCoder では一番使っています。処理速度が速いです。)
・C# (AtCoder では 2022/10/15 から2番手になりました。Unity でも使っています。)
・Java (Minecraft の Mod を作るときに使っています。少しだけ JVM をいじったこともあります。)
・C (習っています。)
・Perl (正規表現が強い言語です。)

たまに使う言語
・HSP3 (3番目くらいに触った言語です。)
・JavaScript (エラー文が不親切なので嫌いです。)
・OpenQASM (量子コンピューターのアセンブリ言語です。あまり理解していません。)
・Scratch (あまりやりこんでいないほうだと思います。)
・機械語 (Ichigojam というマイコンで遊んでいます。)

その他
Befunge, BrainF**k, Kuin, Lua, Python3, Scheme, Swift, TypeScript など。

得意 (多分) 分野
・(簡単な) 文字列操作
・貪欲法
・キュー・スタック・両端キュー

苦手分野
・動的計画法 (割と致命的だと思います。)
・グラフ理論 (AHC016 は苦手なりによくやった。)

自慢できそうな話
Scratch はもうすぐ 5 年目です。
Minecraft の Mod について、アイテム・ブロック・エンチャント・ポーション・ルートテーブルの追加などはできます。
AtCoder の成績 (2023/02/05現在)
アルゴリズム: 763 (Highest: 827)
ヒューリスティック: 816
HTTF 2023 for Youth で本選に行ってきました。

プログラミング関連でこれからやりたいこと
RPGの制作、プログラミング言語の制作、JVM, LLVM への理解を深める、AtCoder で入緑、VR / AR 関連、音声加工 など。
自作ゲームの BGM くらいは作曲したい。

おしまい。

Last edited by Doctor_Fe (Feb. 5, 2023 03:27:24)

kuroge_
Scratcher
100+ posts

Scratch以外のプログラミング言語やってる人交流場

じゃあ僕も自己紹介

一番できると思う言語
Python3
そこそこ理解したんじゃないかと思う言語
JavaScript
HTML5 & CSS3
一応ちょっと使える言語
Ruby
Go
Rust
PHP
AWK
かじっただけ言語
C
Swift
スラスラ打てるようになりたい言語
C++
気になっている言語
LLVM(?)
Perl

…以上です

では、お決まりの一言、、、うおっほん…
「これは署名といっていちいち手動で書いてません」
よし、決まった、、、((
サブ垢①:@torino_karaage
サブ垢②:@comma923
akinarin
Scratcher
500+ posts

Scratch以外のプログラミング言語やってる人交流場

少しマニアックなプログラミング史(構造型と宣言型プログラミング 前編)
皆さん、好きなif文は何ですか?(唐突)
僕はRustのif文です。
C系に似た形でありながら、丸括弧を省略でき、
式としても扱える。そしてもちろん文としても扱える。

でも、むかしむかしのifはこんなのではありませんでした。
最初期のifはこんな感じ(C#での再現イメージ)でした。
if (条件) goto ラベル;
最初期のifはgotoがセットだったのです。
JVMの命令セットとかでもifeqとかは「指定の番地に処理を移す」となっています。
昔のプログラマ達はこんな感じ(イメージ)のプログラムをガリガリ書いていました。
例えばC#でforやwhile, goto以外が続くifを使わずにFizzBuzzのプログラムを書くとこうなります。
using System;

int i = 0;
Loop:
Console.WriteLine(i);
if (i % 15 != 0) goto FB;
Console.WriteLine("FizzBuzz");
goto END;
FB:
if (i % 3 != 0) goto F;
Console.WriteLine("Fizz");
goto END;
F:
if (i % 5 != 0) goto END;
Console.WriteLine("Buzz");
END:
i++;
goto Loop;
はい、スパゲティコードです。
皆さんも挑戦してみてください。
ゲームみたいで楽しいですよ。

昔のプログラミングの大変さを実感できましたか?
では中編に続く。

最近、物理と世界史、数学、ボカロにはまっています。
プログラミング言語制作の方は案を作るのに夢中になり過ぎて捗っていません。
あと、使い始めたのにRustに慣れていない…
Doctor_Fe
Scratcher
100+ posts

Scratch以外のプログラミング言語やってる人交流場

もしかしたらこのトピックに来ている人なら興味を持つかなと思いまして。
関数型プログラミングのスタジオを (結構前に) 作ってみました。誰か来てくれませんか……(万年人数不足です)
akinarin
Scratcher
500+ posts

Scratch以外のプログラミング言語やってる人交流場

akinarin wrote:

Kuinという名前は聞いたことがありました。
文法がPascal系なんですね(自分もPascalは良く知らないです)
Pascalの皮を被ったC++という感じでしょうか⋯。

C#とKuinの両方で動くソース凄いですね。
僕もC#とPythonとかでやろうかと思いましたができる気がしません。
C#とKuinだからこそできるんですね。

すみません、全然Pascalっぽくなかったです。
間違えたことを言ってしまいすみません。

最近、物理と世界史、数学、ボカロにはまっています。
プログラミング言語制作の方は案を作るのに夢中になり過ぎて捗っていません。
あと、使い始めたのにRustに慣れていない…
h_team_x
Scratcher
80 posts

Scratch以外のプログラミング言語やってる人交流場

browser:My browser / operating system: Windows NT 10.0, Chrome 108.0.0.0, No Flash version detected (windows)
My browser / operating system: ChromeOS 15183.69.0, Chrome 108.0.0.0, No Flash version detected (chrome)

使える言語
HTML5(いまいち)&CSS2(まあまあ)
私はcodecademy(英語)で習ってる
習いたい言語
c++
JAVASCRIPT
PYTHON
PC:windows と chromeOS

Last edited by h_team_x (Dec. 30, 2022 21:16:43)


hello!
My browser / operating system: ChromeOS 15183.69.0, Chrome 108.0.0.0, No Flash version detected (CHROME DEVICE versions)
My browser / operating system: Windows NT 10.0, Chrome 108.0.0.0, No Flash version detected (windows edision)

h_team_x
Scratcher
80 posts

Scratch以外のプログラミング言語やってる人交流場

<!-- コメント >
<html> -->
<body>
<p>
welcome back (your name)!!
</p>
&#x1F0A0;
</body>
</html>
<p>の後にある文字は?

Last edited by h_team_x (Dec. 30, 2022 21:40:54)


hello!
My browser / operating system: ChromeOS 15183.69.0, Chrome 108.0.0.0, No Flash version detected (CHROME DEVICE versions)
My browser / operating system: Windows NT 10.0, Chrome 108.0.0.0, No Flash version detected (windows edision)

akinarin
Scratcher
500+ posts

Scratch以外のプログラミング言語やってる人交流場

先ほど、僕がプログラミング言語を作ろう(合作ではないです)にポストした内容が、
「プログラミング言語制作」というよりは、「プログラミング言語」という感じがしたのでこっちに転載します。
そういえば、最近(2000年代後半開発スタート)の言語はメンバとメソッドを分離する系の言語多いですよね。
どっちかというと「クラスとメソッドの分離」かも知れませんが。
RustとかGoとかNimとか…。

一方(1990年代~2000年代初頭)の言語, C#とかJavaとかではメンバとメソッドを分離しません。
動的型付け言語のPythonとかPHPとかRubyとかでも「クラスに何でも詰め込む」ような仕様ですよね。

これらの言語でクラスが肥大化し過ぎた反省から来ている風潮なのではないかと考えてます。

「クラスに何でも詰め込む」系言語では、「クラス内でのカプセル化ができる」というメリットがありますが、
RustとかGoとかは、「パッケージやクレートのレベルでカプセル化すれば良いじゃない」という感じです。

またC#3.0(2007年)の「拡張メソッド」はRustやGoやNimのメソッド(もしくはメソッドもどき)と似ているので
C#3.0の拡張メソッドが影響を与えたのかなと思っています。
(もしかしたら順番が逆だったり、他の言語からの影響かも知れませんが、
静的型付け言語で拡張メソッドと言えばC#みたいな感じが自分の中であるので)
(もしかしたら、関数型言語のパイプライン演算子の影響なのかも知れません)

最近、物理と世界史、数学、ボカロにはまっています。
プログラミング言語制作の方は案を作るのに夢中になり過ぎて捗っていません。
あと、使い始めたのにRustに慣れていない…
Uta_Yau-
Scratcher
15 posts

Scratch以外のプログラミング言語やってる人交流場

いやぁ、ここにいる方々はレベルが違いますね…
あ、私ですか?
使用言語
・HTML&CSS(マークアップ言語だけどね)
・BBCode(掲示板に利用される言語)
・Java(以下勉強中)
・#C
・C
・C+
・C++
といったところですね…
やっぱ弱い!!

署名といっていちいち手動で書いていません。(セリフ考案:s-t-p氏)

署名ではそのスレッドに関係のないことを書くことができます。署名についてはこちらを参照しよう。
最初に必ず、
日本語フォーラムのお約束を読んでね!!
完全手動
"Post Counts:
15"

やあ!みんな!元気かい?この文字とても読みにくいだろ。ごめんな。(>'-'<)
Uta_Yau-
Scratcher
15 posts

Scratch以外のプログラミング言語やってる人交流場

Uta_Yau- wrote:

Uta_Yau- wrote:

・#C
・C
・C+
・C++
・C+なんて存在しねぇよ!!
・#Cも存在しねぇよ!!
本当は・C#だよ!!
何度もすみません

署名といっていちいち手動で書いていません。(セリフ考案:s-t-p氏)

署名ではそのスレッドに関係のないことを書くことができます。署名についてはこちらを参照しよう。
最初に必ず、
日本語フォーラムのお約束を読んでね!!
完全手動
"Post Counts:
15"

やあ!みんな!元気かい?この文字とても読みにくいだろ。ごめんな。(>'-'<)
akinarin
Scratcher
500+ posts

Scratch以外のプログラミング言語やってる人交流場

今日、effect-systemを備えた言語、Kokaのホームページのツアーを読んでみました。

日本語の「効果」が由来の言語のようです。

effect-systemがモナドと似た概念だと知っていたので、
Haskellのような感じの言語かと思いましたが、
文法は全然違いました。

まず、
代数的データ型が定義できたり、構造体が定義できたりして
書き方は結構違いますがRustみを感じました。

そして関数の定義の仕方が、SwiftやGo言語, Rustなどのそれに似ていて、
関数型言語には全然似ていませんでした。
特にキーワード引数やデフォルト引数が使えたことが
「The 関数型言語」という感じではありませんでしたが、
書きやすそうな言語だと思いました。
また、メソッド風記法が構文糖衣なことには好感を覚えました。
RubyやScalaやSwiftのようなブロック記法が(仕様はSwiftのが近い)
使えたので嬉しかったです。

文法は全然Haskellとは似ていませんでしたが、
effectでHaskellのモナドみたいなことをしている
サンプルコードがあったので
Haskellの影響も確かにあるみたいです。

さて、Kokaの仕様でほかの言語に無かった特徴的な機能といえば、やはり「with」ですね。
継続渡し的な使い方は他言語にもあると思いますが、
with handlerがオリジナリティ溢れてました。
他言語の似た機能を強いて言うとしたら
Swiftのdo-catchかなと思います。
Swiftのdo-catchを他のeffectでも使えるようにした感じです。
resumeが使える点でKokaの方が多機能ですが…

面白い言語でした。
未だ仕様しか読んでいないので、
早く実際に動かしてみたいです

最近、物理と世界史、数学、ボカロにはまっています。
プログラミング言語制作の方は案を作るのに夢中になり過ぎて捗っていません。
あと、使い始めたのにRustに慣れていない…
Doctor_Fe
Scratcher
100+ posts

Scratch以外のプログラミング言語やってる人交流場

1週間くらい前の話なのですが、AtCoder の過去問の簡単なのを BrainF**k で解いてみました。
普通の言語で書けばすぐ終わる簡単な問題なのですが、BrainF**k で書くとかなり時間がかかりました。コードはこちら。
,
>++++++++[>++++++<-]>+
[<<->>-]<+<
[[-]++++++[>++++++++++++++++<-]>++.+++++.+++++++.----.++++++++++.-----------------.---.++++++++.>++++++++++.>[-]]
>[[-]>[-]<++++++++[>++++++++<-]>+.+.+.>++++++++++.[-]>[-]<]
while と if ~ else は実装できたので、今度は大なり・小なりを実装できるようになりたいです。

プログラミングというより、パズルを解いている感覚でした。


追記:
問題は ABC020A です。

Last edited by Doctor_Fe (Jan. 12, 2023 14:44:16)

akinarin
Scratcher
500+ posts

Scratch以外のプログラミング言語やってる人交流場

>> #2574

引き算とifができたら、大なり小なりも簡単に実装が出来ると思います。
引き算の途中で分岐する感覚です。

最近、物理と世界史、数学、ボカロにはまっています。
プログラミング言語制作の方は案を作るのに夢中になり過ぎて捗っていません。
あと、使い始めたのにRustに慣れていない…
akinarin
Scratcher
500+ posts

Scratch以外のプログラミング言語やってる人交流場

前から思っていたのですが、
Brainf**kはチューリング完全なので、
Brainf**kでBrainf**kのインタプリタを作ることは理論上可能なのでしょうか。

最近、物理と世界史、数学、ボカロにはまっています。
プログラミング言語制作の方は案を作るのに夢中になり過ぎて捗っていません。
あと、使い始めたのにRustに慣れていない…
inoking
Scratcher
1000+ posts

Scratch以外のプログラミング言語やってる人交流場

こちらから移動してきました。

akinarin wrote:

そういえば、情報Iの教科書で「インタプリタ」の説明として
「ソースコードを1行ずつ機械語に変換して実行する」と載っていました。

インタプリタは機械語に変換しないので明らかな間違いだと思うのですが、
これはこの教科書の問題なのか、
それとも文部科学省がそう教えるように指導しているのかどちらでしょうか?
「インタプリタ」で Google 検索するとトップにこれ↓が出てきますね。
インタプリタ(interpreter)は、コンピュータでプログラムを処理する方法の一つです。プログラムの実行時にソースコードを1行ずつ機械語プログラムに変換するプログラムのことでもあり、コードを読み込みながらその場で処理・実行していきます。インタプリタには日本語で「通訳者」という意味があります。
akinarin さんは「コンパイルしていない」と言いたいのだと思いますが
結局は機械語を実行していることからすると
この説明で合っていると言えるでしょう。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
akinarin
Scratcher
500+ posts

Scratch以外のプログラミング言語やってる人交流場

abeeさんのpostを受け、
僕のインタプリタの解釈を書きます。

僕の思うインタプリタ言語は「機械語に変換されずに実行される言語」のことです。
(但し、最適化の過程でプログラムを機械語に変換する場合を除きます)

まず
「機械語に変換せずにプログラムを実行することはできない」というのがありますが
これは誤解です。

確かに「CPUが直接実行できるのは機械語だけ」というのは正しいです。
というよりは、機械語の定義が「CPUが直接実行できる言語」です。
しかし「間接的には」コンピュータも、機械語以外を実行できます。

では、どう実行するのかというと、「電卓アプリ」と似たような実行の仕方です。
電卓アプリは、数式を元に値を計算しますが、
このときにわざわざ数式を機械語には変換しません。

インタプリタというのは、簡単に言えば
この電卓アプリに使える数式を拡張したものです。
電卓アプリが数式を機械語に変換しないように、
インタプリタは、プログラムを機械語に変換しません。


そもそも、世間一般で言われている
「インタプリタはプログラムを1行ずつ機械語に変換しながら実行する」の方が意味不明です。
「1行ずつ」である必要性が全くないからです。

プログラムの最小単位は、字句解析によって分けられる「字句」であり、
一般的な言語で実行できる最小単位は「式」です。
さらに一般的なプログラミング言語では、それが集まって文をなし、
それが集まって1つのソースファイルをなします。

つまり「1行」の単位がどこにもないのです。
インタプリタ言語でも、式の途中で改行できるのも多いですし、
セミコロンを使えば、1行に複数の文が書ける言語も多いです。

なのに、「1行ずつ」と言っているところが、そもそもおかしいのです。

たとえ、「1行ずつ」が「1文ずつ」の間違えだったとしても、
言語開発者にとって、それが「1文ずつ」であるメリットは何処にもありません。
プログラムの実行の最小単位は、殆どの場合「式」だからです。

最近、物理と世界史、数学、ボカロにはまっています。
プログラミング言語制作の方は案を作るのに夢中になり過ぎて捗っていません。
あと、使い始めたのにRustに慣れていない…
inoking
Scratcher
1000+ posts

Scratch以外のプログラミング言語やってる人交流場

「電卓アプリ」とは具体的にはどれを指していますか?

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
akinarin
Scratcher
500+ posts

Scratch以外のプログラミング言語やってる人交流場

あまりにも一般的なものなので、
「具体的にどれか?」と言われると答えづらいですが、
僕がイメージしているのはネットで「電卓アプリ」や「Web電卓」と調べたら出てくる
アプリやサイトのことを指しています。
「日常の計算をするときに使うアプリやサイト」と言えば良いでしょうか?
Excelなど表計算ソフトの数式でも構いません。

最近、物理と世界史、数学、ボカロにはまっています。
プログラミング言語制作の方は案を作るのに夢中になり過ぎて捗っていません。
あと、使い始めたのにRustに慣れていない…
akinarin
Scratcher
500+ posts

Scratch以外のプログラミング言語やってる人交流場

インタプリタは、「プログラムを解析して、それが意味する通りに実行している」だけなので、
それを解りやすく表現する為に「電卓アプリ」という言葉を使いました。

インタプリタが「機械語に変換する」という処理を行っているのならば
この世の「文字列をもとに何かをする」ソフト全てが
「機械語に変換する」という処理を行っていることになってしまいます。
さすがに、そんなことは無いでしょう。

最近、物理と世界史、数学、ボカロにはまっています。
プログラミング言語制作の方は案を作るのに夢中になり過ぎて捗っていません。
あと、使い始めたのにRustに慣れていない…

Powered by DjangoBB