- 1
- 2
- 3
https://www.researchgate.net/publication/325358150_cQASM_v10_Towards_a_Common_Quantum_Assembly_Language
cQASM v1.0: Towards a Common Quantum Assembly Language
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
https://www.researchgate.net/publication/325358150_cQASM_v10_Towards_a_Common_Quantum_Assembly_Language
cQASM v1.0: Towards a Common Quantum Assembly Language
The quantum assembly language (QASM) is a popular intermediate representation used in many quantum compilation and simulation tools to describe quantum circuits. Currently, multiple different dialects of QASM are used in different quantum computing tools. This makes the interaction between those tools tedious and time-consuming due to the need for translators between theses different syntaxes. Beside requiring a multitude of translators, the translation process exposes the constant risk of loosing information due to the potential incompatibilities between the different dialects. Moreover, several tools introduce details of specific target hardware or qubit technologies within the QASM syntax and prevent porting the code to other hardwares. In this paper, we propose a common QASM syntax definition, named cQASM, which aims to abstract away qubit technology details and guarantee the interoperability between all the quantum compilation and simulation tools supporting this standard. Our vision is to enable an extensive quantum computing toolbox shared by all the quantum computing community.
Вот это я понимаю, а то вон там мелкософт какие-то говношарпы придумывает очередные:
https://docs.microsoft.com/en-us/quantum/language/?view=qsharp-preview
j123123 28.12.2018 15:10 # +2
j123123 28.12.2018 15:14 # +2
Хоть этот cQASM к сожалению не совсем настоящий ассемблер, а просто абстракция чтоб между разными квантовыми компьютерами код сделать переносимым, и настоящие Цари конечно же будут писать на платформозависимом квантовом ассемблере, это все ж лучше какого-то шарпоговна.
Morgoth 28.12.2018 15:20 # 0
Но всё же я за S" Forth", в нём можно когда угодно переклюсатся между копеляцией и интрепретацией. Можно даже со store и load модификать уже собранный код.
Morgoth 28.12.2018 15:35 # 0
guest8 28.12.2018 15:45 # −999
Morgoth 28.12.2018 15:47 # 0
guest8 28.12.2018 15:49 # −999
j123123 28.12.2018 15:45 # +2
guest8 28.12.2018 15:20 # −999
Morgoth 28.12.2018 15:24 # 0
guest8 28.12.2018 15:24 # −999
1024-- 28.12.2018 21:54 # 0
Недерьмированность кванпуктеров позволяет как бы параллельно считать разную вычислюшню, что полезно.
crestoblyad 28.12.2018 15:33 # +1
Morgoth 28.12.2018 15:39 # 0
crestoblyad 28.12.2018 15:40 # 0
Morgoth 28.12.2018 15:44 # 0
crestoblyad 28.12.2018 15:48 # 0
j123123 28.12.2018 18:15 # 0
guest8 28.12.2018 18:22 # −999
j123123 28.12.2018 19:26 # 0
1024-- 28.12.2018 21:55 # 0
guest8 28.12.2018 21:57 # −999
roman-kashitsyn 29.12.2018 17:16 # 0
Morgoth 29.12.2018 17:33 # 0
j123123 29.12.2018 05:23 # +2
bormand 29.12.2018 07:15 # 0
Xyu_HE_3HAET 29.12.2018 09:24 # 0
guest8 29.12.2018 12:05 # −999
Xyu_HE_3HAET 29.12.2018 13:04 # 0
j123123 29.12.2018 13:28 # 0
Steve_Brown 29.12.2018 13:43 # +1
j123123 28.12.2018 18:17 # 0
guest8 28.12.2018 18:22 # −999
j123123 28.12.2018 19:17 # 0
bormand 28.12.2018 18:23 # 0
К сожалению фпга на ходу не реконфигурятся, так что весь потенциал форта так не раскрыть :(
j123123 28.12.2018 19:16 # +1
> As well as Marko and Damjan's Opencores one,
> there is Reinoud Lamberts' "open source design for
> an FPGA to be implemented on an FPGA".
> Reinoud calls it the MPGA.
> http://ce.et.tudelft.nl/~reinoud/mpga/README.shtml
> Т.е. одно из решений добавления открытой структуры в закрытую архитектуру - это реализация на закрытой архитектуре программируемой открытой архитектуры, правда с избыточностью, т.к. прошивка для прошивки будет как бы эмулятором (с другой стороны FPGA уже является псевдо-хардверной эмуляцией через софтверное программирование микровычислителей - LUT-ов).
> В связи с этим хочется предложить на всеобщее обсуждение идею переконфигурируемого компьютера "Морфеус", который может быть перепрограммирован пользователем (причём с этого же самого компьютера) путём записи некоторых значений в ячейки распределённой памяти (есть в Spartan-3 от Xilinx) для перестраивания сети, содиняющей вместе логические и арифметические блоки, включая умножители 18x18 (есть несколько в Spartan-3 от Xilinx) - пользователю для этого не нужна среда разработки от Xilinx, как и знание VHDL - всё будет делаться "над" конкретной физической реализацией - поэтому с некоторой избыточностью, что можно в той или иной степени скрыть путём использования очень большой FPGA (например Spartan-3 с 200 тысячами гейтов или даже больше).
bormand 28.12.2018 20:10 # 0
guest8 28.12.2018 20:14 # −999
j123123 28.12.2018 20:17 # 0
bormand 28.12.2018 20:21 # 0
j123123 28.12.2018 19:46 # +3
Есть даже специальный клеточный автомат для эмуляции на нем всяких диодов и логических элементов https://en.wikipedia.org/wiki/Wireworld и на нем можно свой проц даже написать https://www.quinapalus.com/wires11.html
1024-- 28.12.2018 21:59 # 0
Навіщо розмовляєте свинячою?
guest8 28.12.2018 22:05 # −999
1024-- 28.12.2018 22:19 # 0
Ладно, "форте" - имя собственное, но эта "автомата" - мерзкий латинизм.
guest8 28.12.2018 22:21 # −999
1024-- 28.12.2018 22:35 # 0
guest8 28.12.2018 22:57 # −999
bormand 28.12.2018 22:22 # 0
На вперёде.
guest8 28.12.2018 22:27 # −999
1024-- 28.12.2018 22:34 # 0
guest8 28.12.2018 22:25 # −999
guest8 28.12.2018 22:28 # −999
j123123 28.12.2018 15:43 # +2
Ну то молоток. Молоток ничем не улучшить. А вот какие-нибудь радиоэлектронщики любят пообсуждать, какой паяльник лучше брать, какую там паяльную станцию, и вот брать ли вот тот или тот осциллограф, и прочую такую хуету.
guest8 28.12.2018 15:46 # −999
crestoblyad 28.12.2018 15:49 # 0
guest8 28.12.2018 15:50 # −999
crestoblyad 28.12.2018 15:53 # 0
guest8 28.12.2018 15:56 # −999
crestoblyad 28.12.2018 15:58 # 0
guest8 28.12.2018 16:01 # −999
crestoblyad 28.12.2018 16:43 # 0
guest8 28.12.2018 16:45 # −999
Morgoth 28.12.2018 17:12 # 0
guest8 28.12.2018 17:13 # −999
bormand 28.12.2018 20:17 # 0
1024-- 28.12.2018 22:13 # 0
Заедушные питушки программисты. Живут в своём мире и думают, что у них всё круче и высокотехнологичней.
Молоток ничем не улучшить. Молоток ничем не улучшить? Вы слышали? Молоток ничем не улучшить...
Во-первых, какой из множества видов молотков?
Во-вторых, всегда можно предложить новый материал, который, например, не будет мяться от забиваемых гвоздей.
В-третьих - сбалансировать плотности и распределение масс так, чтобы отдача была меньше, аэродинамика была лучше и т.д.
В-четвёртых - форма ручки. Отливать точно по руке. Или сделать трансформирующуюся ручку для изменения формы молотка. Не помешает продумать момент, когда молотком особо не помашешь, либо гвоздь заглубили.
Если молоток используется для редких работ, не требующих больших нагрузок - можно совместить ручку молотка и ручку для отвёртки с битами, чтобы меньше питушни с собой таскать.
Кстати о массе: поиск наиболее эффективно работающего походного молотка с минимальной массой и удобной формой, возможность переиспользования в другом инструменте.
И многое другое.
Наколются своим жс и пердолются серверу в порты.
guest8 28.12.2018 22:16 # −999
1024-- 28.12.2018 22:27 # 0
Дыра в стене не лечится откатом на предыдущий коммит.
И историю коммитов тоже не перепишешь: все будут смотреть на стену и помнить твой зашквар.
Приходится думать прежде, чем стучать.
guest8 28.12.2018 22:29 # −999
bormand 28.12.2018 22:33 # 0
Можно повесить что-нибудь на это место и выдать за фичу.
guest8 28.12.2018 23:19 # −999
1024-- 28.12.2018 23:44 # 0
Тут всё как в C++: конструктор - это специальная функция, на способ вызова которой налагаются ограничения.
Да и чисто математически конструктор - это отображение из декартова произведения областей определения аргументов в пространство значений сконструированного объекта. То есть функция.
> this так странно себя ведет
Здесь, кстати, прогресс идёт. Даже бароп об этом писал. В стрелочных функциях расово верный семантически правильный this.
Осталось сделать простой способ выразить object.method.bind(object), но не теряя возможности взять чисто object.method как в C++ без питоничного зашкваривания this-а объектом.
guest8 29.12.2018 00:28 # −999
guest8 29.12.2018 00:30 # −999
bormand 29.12.2018 00:37 # +2
Имхо, проще сменить этот пароль и забить.
guest8 29.12.2018 00:40 # −999
kir_rik 29.12.2018 00:42 # −102
guest8 29.12.2018 00:43 # −999
j123123 28.12.2018 23:51 # 0
> Во-вторых, всегда можно предложить новый материал, который, например, не будет мяться от забиваемых гвоздей.
> В-третьих - сбалансировать плотности и распределение масс так, чтобы отдача была меньше, аэродинамика была лучше и т.д.
Где-то я уже это читал. https://habr.com/post/141477/
— Как выяснилось, если сделать только один тип молотка, способный выполнять те же задачи, что и все виды молотков, тогда он будет не очень хорош для каждой из них. Забивать гвозди кувалдой не очень эффективно. И если Вы хотите убить свою бывшую девушку, то ничто не заменит молотка с круглым бойком.
— Верно. Но если никто больше не покупает Универсальные Молотки и если Вы больше не продаете все старомодные типы молотков, то какие же молотки Вы продаете?
— Вообще-то, мы не продаем никакие молотки.
— Но…
— Наши исследования показали, что людям совсем не нужен Универсальный Молоток. Всегда лучше использовать нужный тип молотка для работы. Поэтому, мы начали продавать фабрики молотков, способные создать любой молоток, какой Вам нужен. Все что Вам нужно — это укомплектовать фабрику рабочими, запустить механизм, купить сырье, оплатить расходы и — БАЦ — у Вас есть именно такой молоток, какой Вам нужен.
— Но мне как-то не хочется покупать фабрику молотков…
— Это хорошо. Потому что мы их больше не продаем.
— Но Вы же только что сказали…
— Мы обнаружили, что большинству людей не нужна целая фабрика. Некоторым людям, например, никогда не понадобится молоток с круглым бойком. (Может у них нет бывших девушек. Или они убили их ледорубом.) Поэтому, нет смысла кому-либо покупать фабрику молотков, которая может произвести любой тип молотка.
— Да, похоже на то.
guest8 29.12.2018 00:14 # −999
guest8 29.12.2018 00:23 # −999
j123123 29.12.2018 01:26 # +2
TpoJIJIeu6yc 09.08.2019 19:04 # 0
j123123 03.12.2019 12:02 # +1
--Да нахуй тебе что-то железное, и зачем вообще что-то приобретать? Вон там у мусорки всякий строительный мусор валяется, соседи ремонт делали. Возьми там какой-нибудь кусок камня поувестсией, и забей им свой гвоздь. А то руда, делать еще что-то.
--ОК, заебись.
подбирает какой-то камень с мусорки, забил им гвоздь и потом этот камень выкинул нахуй, т.к. больше ему гвоздей забивать не надо, и вытаскивать гвоздей тоже не надо
j123123 03.12.2019 12:07 # +1
> Одну текущую задачу сначала показали «плюсовику», спросив, сколько займёт её решение. Он сказал: «Здесь нужно писать могучий движок. Короче говоря, это проект на полгода». Его коллега-«сишник» поинтересовался: «А зачем?» Ведь поставленная задача укладывается в сотню строк кода! Ответ был ошеломляющим: «Ну и что, мы так и будем по сотне строк кода писать для решения частных задач, каждый раз, как они возникают? Нетушки, задачи надо решать раз и навсегда!».
> По моему глубокому личному убеждению, проблемы нужно решать по мере их возникновения. Писать программы на вырост с избыточным универсализмом нужно лишь очень хорошо предварительно подумав, ибо это из серии «Почему сегодня не делают корабли, летающие к звёздам?» Ответ прост: потому что корабль, построенный завтра, прибудет быстрее, а корабль, построенный послезавтра, еще быстрее. И их обоих обгонит корабль, построенный лет через пятьдесят, но когда он вернётся обратно, то обнаружит, что у человечества совсем другие проблемы».
Поэтому я за Си.
bootcamp_dropout 03.12.2019 12:16 # +1
А потом ты приходишь на новое место работы, а там файлы по несколько тысяч строк кода, реализующие с десяток таких "задач" каждый
j123123 03.12.2019 12:23 # +3
bootcamp_dropout 03.12.2019 12:40 # 0
guest8 03.12.2019 14:12 # −999
bormand 03.12.2019 14:23 # 0
Да даже ссаный вектор или джвусвязный кольцевой список...
guest8 03.12.2019 14:26 # −999
bormand 03.12.2019 14:29 # 0
guest8 03.12.2019 17:18 # −999
bormand 03.12.2019 18:02 # 0
guest8 03.12.2019 19:57 # −999
bormand 03.12.2019 20:53 # 0
guestinxo 03.12.2019 21:03 # 0
guest8 03.12.2019 21:06 # −999
guestinxo 03.12.2019 21:10 # 0
guest8 03.12.2019 21:06 # −999
j123123 03.12.2019 21:08 # 0
И готовые реализации могут не подходить по каким-то критериям
guest8 03.12.2019 21:09 # −999
j123123 03.12.2019 21:22 # 0
j123123 03.12.2019 18:50 # 0
На всяких контроллерах весь этот STL сразу нахуй отправляется, потому что в хуй не всралось мне тащить всякие эксепшены и прочий крестомусор
guest8 03.12.2019 19:15 # −999
j123123 03.12.2019 19:16 # 0
ПХП отлично работает в огромном количестве проектов например. На ПХП написан вконтакт и фейсбук. Кто ты такой чтоб критиковать ПХП?
guest8 03.12.2019 19:18 # −999
j123123 03.12.2019 19:22 # 0
> А еще там не нужен json, xml, rest, http, и много чего еще
В контроллерах как раз иногда пригождается json и http. Я json через sprintf генерил на контроллере для отправки на http сервер POST запросом.
guest8 03.12.2019 19:23 # −999
j123123 03.12.2019 19:26 # 0
CEMEH 03.12.2019 19:57 # 0
guest8 03.12.2019 14:11 # −999
bormand 03.12.2019 14:38 # 0
j123123 03.12.2019 20:25 # 0
guestinxo 03.12.2019 20:28 # 0
j123123 03.12.2019 20:28 # 0
Зачем реализовывать, если можно скопипастить из стековерфлоу?
guestinxo 03.12.2019 20:30 # 0
guest8 03.12.2019 21:07 # −999
guestinxo 03.12.2019 21:10 # 0
guest8 03.12.2019 21:17 # −999
XYPO3BO3 03.12.2019 23:02 # 0
guest8 03.12.2019 23:03 # −999
guestinxo 03.12.2019 23:52 # 0
guest8 03.12.2019 14:10 # −999
j123123 03.12.2019 19:02 # 0
-- Говно воняет. Мне не нравится вид говна и его запах.
-- Ты просто неосилятор. У тебя религиозная непереносимость говна. Это не показатель, ты предвзят.
guest8 03.12.2019 19:13 # −999
j123123 03.12.2019 19:17 # 0
guest8 03.12.2019 19:19 # −999
j123123 03.12.2019 19:24 # 0
Нет. Попробовав почитать стандарт крестов, попробовав почитать реализацию стандартной библиотеки крестов, попробовав почитать boost и прочие убогие попытки метапрограммирования, и попробовав самому этим метапрограммированием позаниматься
guest8 03.12.2019 19:27 # −999
j123123 03.12.2019 19:28 # 0
guest8 03.12.2019 19:29 # −999
j123123 03.12.2019 19:31 # 0
guest8 03.12.2019 19:33 # −999
j123123 03.12.2019 19:36 # 0
В случае с крестами я хотел таким способом понять уровень трудоемкости создания тех абстракций на крестах, которые есть в стандартной библиотеке, и насколько это все читаемо. Мне не понравилось.
Еще мне механизм обработки исключений не понравился, и RAII не понравилось, и RTTI. И много чего еще, о чем я могу долго рассказывать, но не буду.
guest8 03.12.2019 19:38 # −999
j123123 03.12.2019 19:55 # 0
Мне больше нравится управлять ресурсами самому в явном виде, я тогда четко понимаю, какое там говно происходит и в каком порядке.
guest8 03.12.2019 20:00 # −999
j123123 03.12.2019 20:07 # 0
https://govnokod.ru/24517
И есть даже GNU расширение, которое вызывает некое говно при выходе из скоупа https://govnokod.ru/25526
Повторюсь, RAII это не то что, что мне сильно не нравится
gost 03.12.2019 20:33 # 0
> Например, как эта хуйня будет работать если я выпрыгну через goto из блока, где область видимости существует?
Все деструкторы вызовутся как надо.
> А что насчет setjmp-longjmp?
Не вызовутся — это слишком лоу-левельная фигня даже по меркам крестов.
> А в каком порядке будет вызываться деструкторы для RAII хуйни, если RAII хуйни было много, и порядок вызова деструкторов имеет значение?
Это мне больше всего нравится: деструкторы будут вызваны в порядке, строго обратном вызову конструкторов.
https://ideone.com/YrPQo7
>> Повторюсь, RAII это не то что, что мне сильно не нравится
Ну ладно. Давайте ругать «крестовое метапрограммирование».
j123123 03.12.2019 20:49 # 0
Вот кстати не думаю что это правильно. Может я хочу чтоб у меня деструкторы и конструкторы многопоточно запускались, работая одновременно. Или чтоб порядок был implementation-defined и компилятор на этом мог каким-то образом сэкономить пару тактов. Или еще хуйпойми как.
guest8 03.12.2019 21:08 # −999
j123123 03.12.2019 21:10 # 0
guest8 03.12.2019 21:15 # −999
j123123 03.12.2019 21:19 # 0
Ну, если GPU имеет прямой доступ к основной оперативной памяти, почему б и нет? Может там в деструкторах мы какие-то картинки рендерим
guest8 03.12.2019 21:21 # −999
j123123 03.12.2019 21:59 # +1
> Все деструкторы вызовутся как надо.
Только если это не особый goto с https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
https://ideone.com/lpT99r
j123123 03.12.2019 22:05 # +1
jump exits scope of variable with non-trivial destructor
Desktop 03.12.2019 22:51 # 0
j123123 03.12.2019 23:02 # 0
j123123 03.12.2019 23:10 # 0
А когда просто обычный goto, все деструкторы вызываются как надо и никакой хуйни нет.
gost 03.12.2019 19:54 # +1
Как так? «RAII» — это одна из немногих фишек крестов, которая сделана удобно и правильно.
j123123 12.12.2019 22:58 # 0
MAPTbIwKA 12.12.2019 22:59 # 0
CEMEH 03.12.2019 20:01 # 0
XYPO3BO3 03.12.2019 22:25 # 0
guest8 04.12.2019 01:12 # −999
j123123 03.12.2019 19:05 # 0
Бывают отличные API на %язык1%, и полное дерьмо на %язык2%
bormand 03.12.2019 14:24 # 0
Я вполне могу себя контролировать и решать конкретные задачи и на крестах. Поэтому ебал я вашу сишечку.
j123123 03.12.2019 18:52 # 0
Решать конкретные задачи можно хоть на PHP, но это не значит что в PHP есть что-то хорошее.
Ну а проблемы крестов в области нагромождения всяких абстракций вполне известны и изучены, не буду повторяться.
guest8 03.12.2019 19:13 # −999
bormand 04.12.2019 06:29 # 0
RAII и немного шаблонов в их изначальном предназначении. Ну и интерфейсы не надо велосипедить из говна и палок когда они понадобятся.
Вполне удобно и предсказуемо.
Konardinho 05.12.2019 01:57 # 0
j123123 02.12.2019 23:34 # +1
guest8 28.12.2018 15:46 # −999
guest8 28.12.2018 17:31 # −999
Steve_Brown 28.12.2018 18:09 # 0
Нужно придумать общий язык, чтобы объединить их всех и лишить их воли.
...
Существует N+1 языков.
j123123 28.12.2018 18:10 # +2
bormand 28.12.2018 18:50 # +2
Morgoth 28.12.2018 18:57 # 0
crestoblyad 28.12.2018 22:07 # −1
guest8 28.12.2018 22:14 # −999
crestoblyad 28.12.2018 22:46 # −1
guest8 28.12.2018 22:51 # −999
j123123 29.12.2018 00:04 # +1
crestoblyad 29.12.2018 22:38 # −1
6A9lHuCT 01.01.2019 01:00 # −102
guest8 03.12.2019 21:10 # −999
guestinxo 03.12.2019 21:19 # 0
guest8 03.12.2019 21:21 # −999
guestinxo 03.12.2019 21:21 # 0
guestinxo 03.12.2019 21:33 # 0
guest8 03.12.2019 21:37 # −999
j123123 03.12.2019 21:45 # 0
guestinxo 03.12.2019 23:53 # 0
XYPO3BO3 04.12.2019 00:38 # 0
CEMEH 03.12.2019 21:49 # 0